Возможный дубликат:
isMemberOfClass возвращает нет, когда экземпляр ViewController создается из UIStoryboard
Недавно я наткнулся на странную проблему:
Я реализовывал простые тестовые примеры и использовал метод NSObject isMemberOfClass для проверки равенства классов.
Кроме того, я реализовал пользовательскую инициализацию:
-(id)initWithMessage:(NSString *)message
Если я заменю id на правильное имя класса, isMemberOfClass вернет «ДА». В противном случае он потерпит неудачу.
Интересная часть: метод класса будет каждый раз возвращать правильный класс.
Это ошибка? Или это должно так работать?
Спасибо..
РЕДАКТИРОВАТЬ:
Хорошо, это не решило проблему. Вот что я делаю. isMemberOfClass всегда будет возвращать НЕТ
Прецедент:
- (void)test010_broadcastWait
{
...
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData
options:0 error:&error];
Brick *newBrick = [self.parser loadBroadcastWaitBrick:doc.rootElement];
if (![newBrick isMemberOfClass:[BroadcastWaitBrick class]])
STFail(@"Wrong class-member");
....
}
Класс BroadCastWait:
импортировать "BroadcastWaitBrick.h"
@implementation BroadcastWaitBrick
-(id)initWithMessage:(NSString *)message
{
self = [super init];
if (self)
{
self.message = message;
}
return self;
}
...
Метод загрузки:
-(BroadcastWaitBrick*)loadBroadcastWaitBrick:(GDataXMLElement*)gDataXMLElement
{
NSArray *messages = [gDataXMLElement elementsForName:@"broadcastMessage"];
GDataXMLElement *message = (GDataXMLElement*)[messages objectAtIndex:0];
BroadcastWaitBrick* brick = [[BroadcastWaitBrick alloc]initWithMessage:message.stringValue];
return brick;
}
@interface BroadcastWaitBrick : Brick
- person dominik   schedule 02.10.2012