我不知道这有多复杂,
我有一个使用 CoreData 的应用程序。
当我创建一个新的托管对象时,我用 plist 中的默认值填充它的字段。
然后我显示一堆表单(将保存的值加载到表单中并在我进行过程中更新对象的值)。
最后我检查对象是否有更改并建议保存对象。
这部分工作正常。
但是,当用户在界面中点击“返回”时遇到问题。如果用户更改了对象中的任何内容,我希望能够显示警报,或者如果没有任何更改,则让用户返回。
但是,我希望你有更改,因为我使用默认数据填充对象,CoreData 承认该对象已更改为开始。
那么如何创建一个新的托管对象并对其进行初始化而不被视为更改
- (Company *)createNewDefaultCompany:(NSString *)name{
Company *company = [Company insertInManagedObjectContext:managedObjectContext];
[company setName:name];
[company setDate:[NSDate date]];
[company setLocalisation:@"en_UK"];
Input *input = [Input insertInManagedObjectContext:managedObjectContext];
[input populateWithDefault];
[company setCompanyInputs:input];
Formulas *formulas = [Formulas insertInManagedObjectContext: managedObjectContext];
[formulas populateWithDefault];
[company setCompanyFormula:formulas];
[company createCalculus];
return company;
}
托管对象的创建。
+(Company *)insertInManagedObjectContext:(NSManagedObjectContext *)managedObjectContext{
return (Company *)[NSEntityDescription insertNewObjectForEntityForName:@"Company" inManagedObjectContext:managedObjectContext];
}