먼저 "인스턴스로 전송 된 인식 할 수없는 셀렉터"문제에 대한 많은 질문이 있습니다.
몇 가지를 보았지만 범주 속성에 정의 된 액세스에 대해서는 아무 것도 보지 않았습니다 ...iPhone : 속성이있는 카테고리 + "인스턴스로 전송 된 인식 할 수없는 셀렉터"예외
속성이있는 UILabel에 범주가 있습니다.
getter 및 setter가 정의됩니다.
실제로 두 개의 다른 클래스 (UIButton 및 UILabel)에 대해 동일한 속성을 사용합니다.
문제는 UIButton에 대해이 속성에 액세스 할 수 있지만 UILabel에는 액세스 할 수 없다는 것입니다.
일단 UILabel (텍스트) 범주의 모든 메서드/속성에 액세스하려고하면 "- [UILabel 테스트] : 인스턴스 0x4e539f0로 전송 된 인식 할 수없는 선택기"예외가 발생합니다.
두 카테고리 파일을 모두 가져옵니다.
나는 무엇이 문제인지 전혀 모른다. 어떤 도움을 이해할 수있을 것이다
// UILabel+text.h
@interface UILabel (text)
- (void)test;
@end
// UILabel+text.m
@implementation UILabel (text)
- (void)test {
NSLog(@"test");
}
@end
// UIButton+text.h
@interface UIButton (text)
- (void)test;
@end
// UIButton+text.m
@implementation UIButton (text)
- (void)test {
NSLog(@"test");// works
}
@end
// Usage (in UIViewController class) - both elements are defined in XIB
[self.button test];// works
[self.label test];// exception
: 여기
몇 가지 코드입니다.가능한 문제에 대한 단서가 없습니다 ...
고맙습니다.
마이클.
흥미 롭습니다 ... 코드로 만들면 작동합니까? (XIB 없음) – Eonil
'[[[UILabel alloc] init] test]'시도하여 가능한 문제의 원인을 찾으십시오. – Jim
빠른 답장을 보내 주셔서 감사합니다. @ 스틴은 이미 내 질문에 대답했다. "UILabel + text.m"파일이 다른 대상에 추가되었습니다 ... –