Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Core Data managedObject中检查多个nil值?_Ios_Core Data_If Statement_Nsmanagedobject_Nsmanagedobjectcontext - Fatal编程技术网

Ios 在Core Data managedObject中检查多个nil值?

Ios 在Core Data managedObject中检查多个nil值?,ios,core-data,if-statement,nsmanagedobject,nsmanagedobjectcontext,Ios,Core Data,If Statement,Nsmanagedobject,Nsmanagedobjectcontext,在保存之前,我需要检查我的managedObjectContext中是否有nil值。目前,我正在使用if语句对每个键进行测试。我的NGLS实体中有许多属性,因此您可以看到,测试每个键的nil值似乎不太实际 if ([_managedObjectNGLS valueForKey:@"q1"] == nil){ [_managedObjectNGLS setValue:@"" forKey:@"q1"]; } if ([_managedObjectNGLS valueForKey:@"q1M

在保存之前,我需要检查我的
managedObjectContext
中是否有
nil
值。目前,我正在使用
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语句手动更改这些值。是否有方法批量测试实体中的所有对象的零值?如果是这样的话,有没有办法一次用一组
字符串
替换所有这些?谢谢。

核心数据包括强大的。作为保存的一部分,核心数据验证对象属性,确保只保留有效对象

通过在托管对象子类上实现,您可以在中实现验证规则,也可以在代码中实现自己的验证规则

例如,使用模型编辑器可以将特性设置为非可选并提供默认值:


你的意思是这样的:
NSArray*allKeys=@[@“q1”、“q1More”等];对于(所有键中的NSString*aKey){if([\u managedObjectNGLS valueForKey:aKey]==nil){[\u managedObjectNGLS setValue:@”“forKey:aKey];}}
?这非常适合我的需要,非常感谢!感谢您的解释和文档链接,这非常有帮助!我将把你的答案标记为正确,因为我将使用这个加上Larme的解决方案的混合物(在
数组中使用
for loop
),因为它们都对我需要的有用。再次感谢。