2014-05-22 3 views
0

문자열을 허용하도록 설정된 엔터티 특성에 null 값을 배치 할 수 있습니까? 문자열을 수신하도록 설정된 메모에 대한 속성이 있지만 메모 필드가 비어 있으면 내가 탭하는 webservice에서 null 값을 반환합니다.CoreData 및 null 값

도움을 주시면 감사하겠습니다.

감사합니다, bnjmnmyers

+0

으로 지정하면 빈 문자열 작업으로 설정합니까? – lucianomarisi

+0

되돌아 오는 값이 문자 그대로 null이면 빈 문자열로 설정하는 방법은 무엇입니까? 문자열 "null"이 아니라 값 null. –

+0

'if (valueFromWebService == nil) {return @ "";};'와 같은 것 – lucianomarisi

답변

0

는 내 동료는 답을 발견했다.

if (NSLocalizedString([actionItem objectForKey:@"Notes"], nil) == [NSNull null]) { 
    newAction.notes = @""; 
} 
1

NSDictionarys 및 NSArrays가 nil 값을 포함 할 수 있기 때문에, 서버의 응답이 null[NSNull null] 단독으로 저장 될 때 다음과 같은 용액 조건을 설정했다. 불행하게도 그 유효한 개체 이후에 if check를 수행하면 true으로 밝혀집니다.

코어 데이터 자체에 nil 값을 저장할 수 있지만, nil이 필요한지 또는 빈 문자열이 필요한지에 따라 다릅니다.

우리가 직장에서이 문제를 해결하는 방법 우리가합니다 (.PCH에서 수입되는)를 NSObject 카테고리의 도우미 기능이

id ObjectOrNull(id object) { 
    if (!object || object == [NSNull null]) return nil; 
    return object; 
} 

같은 방법 중 하나를 그 함수에 대한 응답
coreDataInstance.data = (ObjectOrNull(response[@"key"]) ?: @""; 

하거나

coreDataInstance.data = (ObjectOrNull(réponse[@"key"]);