在保存之前,我需要检查nil
中是否有managedObjectContext
个值。在那一刻,我正在使用if
语句对每个键进行测试。我的NGLS
实体中有很多属性,因此您可以看到测试nil
值的每个键似乎不太实用。
if ([_managedObjectNGLS valueForKey:@"q1"] == nil){
[_managedObjectNGLS setValue:@"" forKey:@"q1"];
}
if ([_managedObjectNGLS valueForKey:@"q1More"] == nil){
[_managedObjectNGLS setValue:@"" forKey:@"q1More"];
}
....
// Save managedObject
NSError *error;
[[self.managedObjectNGLS managedObjectContext] save:&error];
NSLog(@"%@", self.managedObjectNGLS);
NSLog(@"Data saved");
通常会有很多nil
个值,我需要使用多个if statements
手动更改这些值。有没有办法批量测试我的实体中的所有对象的nil值?如果是这样,有没有办法立即用集合string
替换所有这些?感谢。
答案 0 :(得分:2)
核心数据包含强大的capabilities for validation。作为保存的一部分,Core Data验证对象属性,确保只保留有效对象。
您可以通过在托管对象子类上实现Core Data Model Editor,在key-value validation或代码中实现验证规则。
例如,使用模型编辑器,您可以将属性设置为非可选属性并提供默认值: