2015-01-27 4 views
0

모델 파일에서 생성 한 핵심 데이터 클래스가 있습니다.NSManagedObject 클래스에 특성을 추가하는 방법은 무엇입니까?

그냥 같은

:

enter image description here

을 그리고 나는 이런 그 실체에 대한 NSManagedObject의 하위 클래스를 생성하는 편집기를 사용 :

enter image description here

그리고 이것은 클래스 나를 위해 생성 된 :

enter image description here

이제 대상 엔티티에 다른 속성을 추가하고 싶습니다. 분명히 클래스에 속성을 추가 할 수 없으므로 그렇게하는 것이 옳습니다.

+1

모델에 추가하고 클래스 파일을 다시 생성합니다. – Larme

+0

더 나은 접근법 : 컴퓨터 용 클래스와 u 용 클래스가 있어야합니다. http://rentzsch.github.io/mogenerator/ – vikingosegundo

답변

0
당신은 카테고리 생성하려면 반드시

@property (nonatomic, retain) NSString * someProperty;

Thanksss :

NSManagedObject + Custom.h을

#import <CoreData/CoreData.h> 

@interface NSManagedObject (Custom) 

- (NSString *)someProperty; 

@end 

NSManagedObject + Custom.m

내가 좋아하는있는 NSString 속성을 추가 할 말할 수
#import "NSManagedObject+Custom.h" 

@implementation NSManagedObject (Custom) 

- (NSString *)someProperty { 
    @throw [NSException exceptionWithName:@"someProperty Not Overridden" reason:@"Must override someProperty on NSManagedObject class" userInfo:nil]; 

    return nil; 
} 

@end 

대상 .m

#import "Target.h" 
#import "NSManagedObject+Custom.h" 

@implementation Item 

@dynamic body; 
@dynamic time; 

- (NSString)someProperty { 
    return @"Some property"; 
} 
0

당신은 속성이 다음 나는 .h.m 파일을 핵심 데이터 엔티티에 추가하고 삭제하고 다시 생성 할 지속되어야합니다.

새 속성을 유지할 필요가없는 경우 일반 클래스와 마찬가지로 생성 된 파일에 추가 할 수 있습니다. 이러한 속성은 유지되지 않으므로 NSPredicate을 사용할 때 쿼리 할 수 ​​없습니다. 명심해야 할 점은 앞으로 모델을 변경하고 해당 파일을 재생성하면 추가 변경 사항을 저장해야한다는 것입니다. 엔티티 클래스에 사용자 정의 변경 사항을 추가하는 카테고리가 있으면 더 편리합니다.

0
  1. 해당 편집기가 드롭 다운되면 Add Model Version을 선택하여 새 버전의 모델을 만드십시오.
  2. Xcode의 오른쪽에있는 유틸리티 검사기에서 새 버전을 현재 모델 버전으로 설정했는지 확인하십시오. 옆에 작은 녹색 체크 표시가 나타납니다.
  3. 왼쪽의 탐색기로 돌아가서 새 모델 버전이 강조 표시되어 있는지 확인하고 엔티티에 새 속성을 추가하십시오.
  4. bodytime 아래 클래스에 속성을 추가하거나 해당 클래스를 삭제하고 모델에서 다시 생성 할 수 있습니다.
관련 문제