可能重复:
当从 UIStoryboard 实例化 ViewController 时,isMemberOfClass 返回 no
我最近偶然发现了一个奇怪的问题:
我正在实现简单的测试用例并使用 NSObject isMemberOfClass 方法来检查类是否相等。
另外我实现了一个自定义初始化:
-(id)initWithMessage:(NSString *)message
如果我用正确的类名替换 id,isMemberOfClass 将返回“YES”。否则会失败。
有趣的部分是:类方法每次都会返回正确的类。
这是一个错误吗?或者它应该以这种方式工作?
谢谢..
编辑:
好的,这并没有解决问题..这就是我要做的.. isMemberOfClass 将始终返回 NO
测试用例:
- (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");
....
}
广播等待类:
导入“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;
}