2011-10-29 7 views
0

나는 같은 텍스트 레이블을 선언합니다. 나는 그것이 isHidden 같은 방법과 같은 방식으로 동작 발견NSTextField있는 인식 할 수없는 선택기

-[__NSCFString setStringValue:]: unrecognized selector sent to instance 0x105703040

, 어떤 생각 setHidden : 나는 코드에서 다른 곳 (뿐만 아니라하는 setStringValue으로) 문자열 값을 변경하려고하면 는하지만이 오류가 나타납니다 왜?

+0

NSLog (@ "% @", self.label); – jrturton

+0

IBOutlets는 유지되어야합니다 : @property (nonatomic, retain) IBOutlet NSTextField * label; – Julien

+1

Ios 또는 OSX? 콘센트는 OSX에 보관되지 않고 iOS에 보관됩니다. 올바른 태그를 추가하십시오. – zaph

답변

0

NSTextField 개체가 아닌 메시지를 NSString 개체로 보냈다는 오류 메시지가 표시됩니다. awakeFromNib 코드는 문제가 없지만 라벨의 문자열을 변경하는 코드가 잘못되었습니다.

1

오류 메시지를 읽는 방법을 배워야합니다. "setStringValue :"가 NSString/CFString 객체에 "전송"되었다고 들었습니다. 즉 "label"의 포인터는 NSTextField가 아니라 NSString입니다. 대부분의 경우, 프로그램의 어떤 이전 시점에서 setStringValue 또는 일부를 수행 할 때 "레이블 지정"하기 위해 NSString을 할당했습니다. 그렇지 않으면 "label"이 유지되지 않기 때문에 저장소가 다시 확보 된 다음 NSString에 사용됩니다.

관련 문제