目标C:如何解决’无法识别的选择器发送到实例’错误

我试图使用以下代码访问实例对象的属性

for (User *user in likersArray) { //Set variables for dictionary NSString *nameLength = [NSString stringWithFormat:@"%i",[user.nickname length]]; } 

但是,我一直收到以下错误:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString nickname]: unrecognized selector sent to instance 0x8c0f780' 

我的用户类定义如下

 @interface User : NSObject  { NSString *uid; NSString *name; NSString *nickname; } @property (nonatomic, copy) NSString *uid; @property (nonatomic, copy) NSString *name; @property (nonatomic, copy) NSString *nickname; @end 

该错误意味着并非likersArray中的所有内容都是User对象。 至少有一件事是NSString

这也可能意味着likersArray中的一个User对象被过度释放而你正在likersArray垃圾。

我有一个非常类似的问题是由于只创建了一个项目并插入到数组中。 如果你的likersArray只包含一个项目,它也会导致这个错误,这是一个讨厌的bug。 希望这有助于某人!