2016-05-10 6 views
3

In meinem root-View-Controller auf Null (mit dem Namen rootViewController.h) Ich habe eine EigenschaftObjective C Eigenschaft Reset durchlief nach dem Gebrauch

@property (nonatomic, strong) NSDictionary *contactList; 

Im in diesem Wörterbuch zu speichern Wert versuchen. Im Bestehen der Eigenschaft meiner Funktion

AddContact *addContact = [[AddContact alloc]init]; 
NSString *result = @""; 
result = [addContact addContact:user :[self contactList]]; 

Als ich meine Funktion Neuer Kontakt und Haltepunkt gehen, ist die Kontaktliste null, obwohl ich 5x auf der Kontaktliste mit diesem Code hinzugefügt.

User *newUser = [[User alloc]init]; 
newUser.name = user.name; 
newUser.phoneNumber = user.phoneNumber; 
newUser.companyName = user.companyName; 
[contactList setValue:newUser forKey:newUser.name]; 

Hilfe

+0

[addContact addContact: Benutzer: [self contactList]]; Diese Funktion scheint nicht korrekt formatiert zu sein, können Sie die Funktionsdefinitionszeile einfügen? – Mortgy

+0

Funktionsdefinition hinzugefügt. – EdBer

+0

Definitionszeile wie '- (void) addContact: (Benutzer *) Benutzer FromDicit: (NSDictionary *) dict;' sieht Ihre Definition so aus? – Mortgy

Antwort

5

Try NSMutableDictionary zu verwenden, wenn Sie es ändern möchten. NSDictionary kann nach der Initialisierung nicht bearbeitet werden.

+0

Danke! Deine Antwort ist richtig. :) – EdBer

1

Wenn Sie Ihr Wörterbuch Sie erstellen müssen sich ändern ist, wie wandelbar wie

@property (nonatomic, strong) NSMutableDictionary *contactList; 

gemäß Regel, wenn Sie veränderbare Objekte verwenden Sie alloc benötigen, init es

so in didLoad Sicht Methode

_contactList = [[NSMutableDictionary alloc] init] ; 
+0

Gut gearbeitet :) Danke aber @PRECover hat es schon beantwortet. – EdBer

0

Sie müssen Kontaktliste initialisieren. Sie haben contactList nicht initialisiert und der Wert ist nicht festgelegt. Und Sie können das änderbare Wörterbuch verwenden, wenn Sie später Werte ändern möchten. Bitte stellen Sie sicher, dass die Werte, die zu contactList hinzugefügt werden, nicht Null sind, da sie sonst nicht zu contactList hinzugefügt werden und das Wörterbuch keine Objekte enthält.

Verwandte Themen