目标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。 希望这有助于某人!