我有自定义的托管对象类:
@interface NDAEntity : NSManagedObject
@property (nonatomic, retain) NSString * text;
+(id) entityWithText:(NSString *)text;
-(void) setText:(NSString *)text;
- (void)setPrimitiveName:(NSString *)text;
@end
@implementation NDAEntity
@dynamic text;
+(id) entityWithText:(NSString *)text{
return [[NDAEntity alloc] initWithText:text];
}
-(id) initWithText:(NSString *)text{
if(self = [super init]){
[self setText:text];
}
return self;
}
-(void) setText:(NSString *)text{
[self willChangeValueForKey:@"text"];
[self setPrimitiveName:text];
[self didChangeValueForKey:@"text"];
}
@end
当我按下按钮时执行下一个代码:
NDAEntity *entity = [NDAEntity entityWithText: @"smth"];
我有错误:
CoreData:错误:无法调用指定的初始化程序 NSManagedObject类' NDAEntity'
我该如何解决这个问题?
答案 0 :(得分:1)
您不能只是alloc init
托管对象的子类。您必须从实体创建托管对象实例并参考上下文。
通常您应该使用insertNewObjectForEntityForName:inManagedObjectContext:
来执行此操作。