我从文本字段中获取姓名和电话号码,直到这里一切正常。
当我尝试将这些数据添加到我的NSMutableDictionary
时,没有任何反应。
@property(strong,nonatomic) NSMutableDictionary *contacts;
- (IBAction)btnAdd:(id)sender {
self.userName = self.name.text;
self.userPhoneNumber = self.phoneNumber.text;
[self addToDictionary:self.userName :self.userPhoneNumber];
NSLog(@"ADDED: Key = %@, Value = %@", self.userName, self.userPhoneNumber);
[self clearTextFields];
}
- (void)addToDictionary: (NSString*) _name: (NSString*) _phone{
[self.contacts setObject:_name forKey:_phone];
}
'_name'的本地声明隐藏了实例变量
答案 0 :(得分:1)
您很可能没有初始化词典。
将此添加到您的viewDidLoad
方法:
self.contacts = [NSMutableDictionary new];
就最后的警告而言,当你有一个声明的属性时,会自动为你创建一个具有相同名称的iVar,但之前添加了_。 I.E.如果您将name
作为声明的属性,则会为您创建一个名为_name
的实例变量。在创建addToDictionary:
方法时,使用了相同的名称。这可以防止您访问iVar,因此它会向您发出警告。要删除警告,请将_name
和_phone
替换为其他内容(例如newName
和newPhone
)。