나는 objective-c에 익숙하지만 수년간 코딩하고 있습니다. 어쨌든 Objective-C로는 따뜻하지 않습니다. 구글과 stackoverflow 검색,하지만 내 문제는 아무도 아직이 질문을 단순하고 어리 석다 생각합니다.Objective-C 속성 액세스 : 인스턴스로 전송 된 인식 할 수없는 선택 자
내 코드는 DateSelectionTitles 예제를 기반으로합니다. http://developer.apple.com/library/ios/#samplecode/DateSectionTitles/Introduction/Intro.html
내가 가진 NSManagedObject
@interface Event : NSManagedObject
@property (nonatomic, retain) NSDate * date;
...
// Cache
@property (nonatomic, retain) NSString * primitiveSectionIdentifier;
모든 특성 결정이
(사과의 예에서와 같이) primitiveSectionIdentifier 제외하고, 내 데이터 모델에 정의하지만되어 나는
NSString *tmp = [self primitiveSectionIdentifier];
I를 호출 할 때 예외를 얻으십시오
Termina 캐치되지 않는 예외 'NSInvalidArgumentException', 이유 때문에 팅 응용 프로그램 : - : 간단하게 말하면
'[이벤트 primitiveSectionIdentifier] 인식 할 수없는 선택기 인스턴스 0x74850c0로 전송'
Event *foo = [[Event alloc] init];
if (foo.primitiveSectionIdentifier) {
NSLog(@"YEAH");
}
이 같은 예외가 발생합니다. 그래서 기본적으로 primitiveSectionIdentifier가 nil인지 확인하려고합니다. 하지만 속성에 액세스하면 예외가 발생합니다. 값이 있는지 확인하기 전에 각 속성을 할당해야합니까?
Objective-C 기본 사항 중 내가 여기에 표시되지 않는 것은 무엇입니까?
답장을 보내 주셔서 감사합니다.
'@synthesize primitiveSectionIdentifier;를'@ implementation' 섹션에 작성 했습니까? –
경고없이 컴파일되는 코드가 있습니까? – rmaddy
Xcode 4를 사용하는 경우.5 컴파일러는 합성하지 않는 것에 대한 경고를 표시하지 않습니다 (@synthesize 속성). 대신 self.primitiveSectionIdentifier를 사용해보십시오. Xcode 4.5 릴리스 노트에서 언급 됨 https://developer.apple.com/library/mac/#releasenotes/DeveloperTools/RN-Xcode/_index.html –