Цель C: Как устранить ошибку «нераспознанный селектор, отправленный экземпляру» - PullRequest
2 голосов
/ 17 июля 2011

Я пытаюсь получить доступ к свойству объекта экземпляра, используя следующий код

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 ]

13 голосов
/ 17 июля 2011

Эта ошибка означает, что не все в вашем likersArray является User объектом. По крайней мере, одна вещь есть NSString.

5 голосов
/ 17 июля 2011

Это также может означать, что один из User объектов в likersArray перевыпущен, и вы попали в мусор.

0 голосов
/ 16 августа 2017

У меня была очень похожая проблема, которая возникала из-за того, что только один элемент был создан и вставлен в массив.Если ваш likersArray содержит только 1 элемент, это также вызывает эту ошибку, и это неприятная ошибка.Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...