为了提高代码的可读性,我一直在为我的实体生成核心数据类,因此我可以使用getter和setter(我个人使用点表示法)而不是setValue: forKey:
例如,而不是[aDateObject setValue:nameString forKey:@"name"];
我将使用:aDateObject.name = nameString;
我想知道是否有一种等效的方法可以将新的托管对象插入到托管对象上下文中。例如,我目前使用以下内容创建新的DateTimeFlightDataType
:
aDateObject = (DateTimeFlightDataType*)[NSEntityDescription insertNewObjectForEntityForName:@"DateTimeFlightDataType"
inManagedObjectContext:self.managedObjectContext];
有没有办法使用我的类(DateTimeFlightDataType
)而不是实体字符串名称来创建和插入此对象以保持一致性?
答案 0 :(得分:6)
你可以写:
NSString *name = NSStringFromClass([DateTimeFlightDataType class]);
NSManagedObjectContext *ctx = self.managedObjectContext;
aDateObject = [NSEntityDescription insertNewObjectForEntityForName:name
inManagedObjectContext:ctx];
答案 1 :(得分:1)
创建MO总是需要一个实体,并且这些实体总是由字符串定义。
常见的方法是以某种方式使它成为字符串不需要硬编码但可以从MO的类派生..通常使用NSStringFromClass