0

我从文本字段中获取姓名和电话号码,直到这里一切正常。当我试图将这些数据添加到我NSMutableDictionary没有任何反应时。


视图控制器.h

@property(strong,nonatomic) NSMutableDictionary *contacts;

视图控制器.m

- (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' 的本地声明隐藏了实例变量

4

1 回答 1

1

您很可能没有初始化您的字典。

将此添加到您的viewDidLoad方法中:

self.contacts = [NSMutableDictionary new];

至于最后的警告,当您拥有声明的属性时,将自动为您创建一个具有相同名称的 iVar,但之前添加了一个 _。IE 如果你有一个声明的属性,那么会为你创建name一个名为的实例变量。_name创建addToDictionary:方法时,您使用了相同的名称。这会阻止您访问 iVar,因此它会向您发出警告。要消除警告,请将_nameand替换_phone为其他内容(例如newNameand newPhone)。

于 2012-12-30T07:49:10.887 回答