ARC下的这段代码有什么问题?我得到了上述错误:
- (Moment *)initMoment:(BOOL)insert {
if (insert) {
self.moment = [NSEntityDescription insertNewObjectForEntityForName:@"Moment" inManagedObjectContext:self.managedObjectContext];
} else {
self.moment = [NSEntityDescription insertNewObjectForEntityForName:@"Moment" inManagedObjectContext:nil];
}
return self.moment;
}
答案 0 :(得分:9)
问题中发布的init
方法格式错误。 init
方法应该(通常)具有以下形式:
-(id)initWithParams:(BOOL)aBoolParam {
if (self = [super init]) {
//do stuff
}
return self;
}
上面代码的问题在于它是作为一个类方法完成的,所以如果海报想要这样做,他必须做moment = [[Moment alloc] init]
并返回它。