2010-04-29 3 views
0

커스텀 메소드를 추가하고 싶은 몇 가지 핵심 데이터 생성 클래스 파일이 있습니다. 인스턴스 변수를 추가 할 필요가 없습니다. 어떻게해야합니까? 하지만,핵심 데이터 생성 클래스에 사용자 지정 메서드를 추가 할 수 있습니까?

// ContactMethods.h (my category on Core Data-generated "Contact" class) 
#import "Contact.h" 
@interface Contact (ContactMethods) 
-(NSString*)displayName; 
@end 
... 
// ContactMethods.m 
#import "ContactMethods.h" 
@implementation Contact (ContactMethods) 
-(NSString*)displayName { 
    return @"Some Name"; // this is test code 
    } 
@end 

이 작동하지 않습니다

나는 방법의 카테고리를 추가했습니다. 나는 "-NSManagedObject가 'displayName'에 응답하지 않을 수 있고 필자가 앱을 실행할 때 필자가 볼 수있는"Some Name "을 얻지 못한다는 컴파일러 메시지를 받는다.

답변

1

먼저 데이터 모델로 이동하여 메소드를 추가하려는 엔티티를 선택하고 클래스를 적절한 것으로 변경합니다. (처음 엔 이니셜을 사용하여 엔티티 이름을 사용합니다). 그런 다음 파일 메뉴에서 새 파일 ...을 선택하십시오. 여기에서 Managed Object Class를 선택하십시오 (데이터 모델이 여전히 활성 문서 인 동안이 작업을 수행해야합니다. 그렇지 않으면이 옵션이 표시되지 않습니다). 올바른 엔티티를 선택하기 위해 파일 마법사를 실행하십시오 (Xcode는 이전에 입력 한 클래스에 따라 파일의 이름을 올바르게 지정합니다). 또한 접근 자 생성 및 Objective-C 2.0 생성 속성 옵션이 선택되어 있는지 확인하십시오. 그러면 다른 클래스와 마찬가지로 원하는 모든 사용자 정의 메서드를 추가 할 수 있어야합니다. 도움이 더 필요하면 http://themikeswan.wordpress.com/2009/05/30/a-core-data-tutorial-part-2-polishing-the-basics/ Mac OS X을 기반으로 작성했습니다. 개념은 iPhone과 동일합니다.

+2

이렇게하는 것이 올바른 방법입니다. 그러나 기계 및 인간이 생성 한 코드의 아말감을 관리하는 것이 어려워 질 수 있습니다. Wolf Rentzsch의 ** 발전기 ** (http://rentzsch.github.com/mogenerator/)를 사용하는 것이 좋습니다. 이 반복적이고 오류가 발생하기 쉬운 작업을 자동화하고 NSNumbers 등의 (un) boxing과 같은 커스텀 클래스에 아주 멋진 자동 기능을 추가합니다. –

관련 문제