2011-05-06 9 views
3

핵심 데이터 모델에서 정의되지 않은 NSManagedObject 하위 클래스에 추가 속성을 정의 할 수 있습니까? 모델에 포함하고 싶지 않은 일련의 추가 속성이 있습니다. 모델에 추가 속성이 정의되지 않은 NSManagedObject 하위 클래스

나는 잘 컨텍스트에 NSManagedObject을 절약 할 수 있어요,하지만 난 응용 프로그램을 닫을 때 다음 ... a가의 NSManagedObject 모든 null 값을 포함하고 다시 응용 프로그램을 시작한 후 가져

어떤 아이디어를 실행?

답변

2

값을 저장하려면 모델에 값을 저장해야합니다. 그렇지 않으면 값에 액세스 할 때마다 값을 생성하고 이전에 생성하지 않은 값을 사용하는 것이 좋습니다.

게으른 로딩 스타일.

- (NSString *)name { 
    if (!name) { 
     name = ... 
    } 
    return name; 
} 
+0

다음은 저장하지 않으려는 속성입니다. getter는 속성으로 정의했기 때문에 getter를 정의하지 않습니다. 이러한 추가 속성을 만드는 것이 좋으면 가져 오기가 모든 속성 (모델에 정의 된 속성 포함)에 대해 null 값을 반환하는 이유는 무엇입니까? 가져 오기에서 반환 된 개체의 수는 정확합니다 ... – avenged

+0

이러한 속성은 분명히 이유가 아닙니다. 대부분의 경우 속성을 무효로 설정했을 가능성이 높습니다. 값을 설정 한 코드 주위에서'if' 또는'NSAssert'와 함께 이것을 다시 확인하십시오. 컨텍스트를 저장하는 것을 잊지 마십시오. 그리고 가능한 경우 모든 반환 값을 확인하십시오. 특히 저장합니다. 개체를 삽입하고, 빈 개체를 저장하고, 일부 값을 설정하고 다음 저장이 실패 할 수 있습니다. –

+0

난 그냥 내 NSManaged 개체 서브 클래 싱 대신 일반 NSManagedObject를 사용하여 가져 오기 테스트를 수행하고 모든 값을 잘하는 것 ... 내 클래스 정의가 이것과 아무 관계가 없다고 확신합니까? – avenged

관련 문제