是否可以在设置为接受字符串的实体属性中放置空值?
我有一个设置为接收字符串的笔记属性,但是当笔记字段为空时,我点击的网络服务会返回null值。
答案 0 :(得分:1)
由于NSDictionarys和NSArrays不能包含nil
值,因此当服务器响应null
存储为[NSNull null]
单例时。不幸的是,如果你对它进行if检查,那么它就会变成true
。
核心数据本身可以存储对象的nil
值,但取决于您是否需要nil
或空字符串取决于您。
我们在工作中解决这个问题的方式我们在NSObject
类别中有一个辅助函数(在.pch中导入)
id ObjectOrNull(id object) {
if (!object || object == [NSNull null]) return nil;
return object;
}
以类似
的方式处理对该功能的响应coreDataInstance.data = (ObjectOrNull(response[@"key"]) ?: @"";
或只是将其指定为
coreDataInstance.data = (ObjectOrNull(réponse[@"key"]);
答案 1 :(得分:0)
我的一位同事找到了答案。解决方案是设置条件如下:
if (NSLocalizedString([actionItem objectForKey:@"Notes"], nil) == [NSNull null]) {
newAction.notes = @"";
}