2

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

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
4

3 回答 3

13

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

于 2011-07-17T05:51:16.170 回答
5

这也可能意味着其中一个User对象likersArray被过度释放,而您遇到了垃圾。

于 2011-07-17T07:39:18.393 回答
0

我有一个非常相似的问题,这是由于只有一个项目被创建并插入到数组中。如果您的 likersArray 仅包含 1 个项目,它也会导致此错误,并且这是一个令人讨厌的错误。希望这可以帮助某人!

于 2017-08-16T08:28:57.737 回答