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

时间:2011-07-17 05:49:10

标签: objective-c ios unrecognized-selector

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

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

3 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:5)

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

答案 2 :(得分:0)

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