鉴于以下类别:
MCAchievementCenter:MCModel (子类)
-(id) initWithDelgate:(id<MCAchievementNotifications>)delegate {
self = [super initWithRessource:@"achievements"];
if (self)
{
self.delegate = delegate;
}
return self;
}
MCModel (超类)
-(instancetype)initWithRessource:(NSString *)ressource {
NSString* ressourcePath = [[NSBundle mainBundle] pathForResource:ressource
ofType:@"json"];
NSData* raw = [NSData dataWithContentsOfFile:ressourcePath];
return [super initWithJSONData:raw];
}
注意:-initWithJSONData:raw
是NSObject
上使用json数据填充对象的类别方法。 (见https://github.com/uacaps/NSObject-ObjectMap)
我的问题:MCAchievementCenter
的初始化失败,因为它变为nil
。
我做错了吗? 任何帮助表示赞赏。
更新:app进入循环&gt;
答案 0 :(得分:0)
检查两件事
MCModel 中的[NSData dataWithContentsOfFile:ressourcePath]是否为零。
您创建的类别中的[super initWithJSONData:raw]将返回nil。
可能会发生资源在该路径上不可用,然后当您调用超级initWithJSONData时,由于 raw 数据为nil,因此也返回nil。