核心数据:如何创建托管对象而不通过字符串引用实体

El *_*Tea 2 xcode core-data ios

为了提高我的代码的可读性,我一直在为我的实体生成核心数据类,所以我可以使用getter和setter(我个人使用点符号)来访问它们而不是 setValue: forKey:

例如,而不是[aDateObject setValue:nameString forKey:@"name"];
我将使用:aDateObject.name = nameString;


我想知道是否有一个等效的方法将新的托管对象插入到托管对象上下文中.例如,我目前DateTimeFlightDataType使用以下内容创建一个新的:

    aDateObject = (DateTimeFlightDataType*)[NSEntityDescription insertNewObjectForEntityForName:@"DateTimeFlightDataType"
                                                                         inManagedObjectContext:self.managedObjectContext];
Run Code Online (Sandbox Code Playgroud)

有没有办法使用我的class(DateTimeFlightDataType)而不是实体字符串名称来创建和插入此对象以获得一致性?

And*_*ndy 6

你可以写:

NSString *name = NSStringFromClass([DateTimeFlightDataType class]);
NSManagedObjectContext *ctx = self.managedObjectContext;
aDateObject = [NSEntityDescription insertNewObjectForEntityForName:name 
                                            inManagedObjectContext:ctx];
Run Code Online (Sandbox Code Playgroud)