我正在尝试使用以下代码访问实例对象的属性
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 <NSCoding>
{
NSString *uid;
NSString *name;
NSString *nickname;
}
@property (nonatomic, copy) NSString *uid;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *nickname;
@end
答案 0 :(得分:13)
该错误意味着likersArray
中的所有内容都不是User
对象。至少有一件事是NSString
。
答案 1 :(得分:5)
这也可能意味着User
中的likersArray
个对象之一被过度释放而你正在遭遇垃圾。
答案 2 :(得分:0)
我遇到了一个非常类似的问题,原因是只创建了一个项目并将其插入到数组中。如果你的likersArray只包含一个项目,它也会导致这个错误,这是一个讨厌的bug。希望这有助于某人!