0

nil 값이 내 managedObjectContext에 저장되어 있는지 확인해야합니다. 잠시 후 if 문을 사용하여 각 키의 테스트를 수행하고 있습니다. 내 NGLS 엔티티에 많은 속성이 있으므로 nil 값에 대한 각 키를 테스트하는 것이 매우 실용적이지는 않습니다.코어 데이터 managedObject에서 여러 개의 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"); 

종종 나는 많은 if statements 수동으로 변경해야 할 많은 nil 값이 있습니다. 엔티티의 모든 객체를 일괄 테스트 할 수있는 방법이 있습니까? 그렇다면이 모든 것을 한 번에 string 세트로 바꿀 수있는 방법이 있습니까? 감사.

+1

이 같은 의미 :'NSArray를 *해서 AllKeys = @를 [@ " (모든 키의 NSString * aKey) {if ([_managedObjectNGLS valueForKey : aKey] == nil) {[managedObjectNGLS setValue : @ ""forKey : aKey];}}'? – Larme

+0

내 요구 사항에 완벽하게 작동합니다. 덕분에 많은 도움이되었습니다. – rosshump

답변

2

코어 데이터에는 강력한 capabilities for validation이 포함됩니다. 저장의 일부로 핵심 데이터는 유효한 개체 만 유지되도록 개체 속성의 유효성을 검사합니다.

Core Data Model Editor에 유효성 검사 규칙을 구현하거나 관리 대상 하위 클래스에 key-value validation을 구현하여 코드에서 유효성 검사 규칙을 구현할 수 있습니다. 예를 들어, 당신이 아닌 선택 사항이 될 수있는 속성을 설정 및 기본값을 제공 할 수있는 모델 편집기를 사용하여

:

Non optional with default

+0

설명 및 설명서 링크를 제공해 주셔서 감사합니다. 내가 당신이 필요로하는 것들 모두에 유용하기 때문에 Larme의 해결책 ('array'에서'for 루프 '를 사용)을 혼합하여 사용할 것입니다. 다시 한번 감사드립니다. – rosshump