나는 다음 오류로 인해 내 응용 프로그램의 충돌을 얻고있다 :"인스턴스로 전송 된 인식 할 수없는 선택기"오류의 의미는 무엇입니까?
-[NSCFString count]: unrecognized selector sent to instance 0x612b060
사람은 무슨 뜻이며 어떻게 당신이 0x612b060
나는 다음 오류로 인해 내 응용 프로그램의 충돌을 얻고있다 :"인스턴스로 전송 된 인식 할 수없는 선택기"오류의 의미는 무엇입니까?
-[NSCFString count]: unrecognized selector sent to instance 0x612b060
사람은 무슨 뜻이며 어떻게 당신이 0x612b060
참조하여 내 코드의 라인을 찾을 수 말해 줄 수 해제되거나 아직 초기화되지 않은 객체 (아마 컬렉션, 예 : 배열, 사전 또는 집합)에 count
메서드를 호출합니다.
NSCFString에 "count"라는 메시지를 보내면 NSString 데이터 유형에 대해 "count"메소드를 호출합니다.
는 스택 추적을 사용하여 코드를 찾으려면,하지만 난 당신이하고있는 것은 확실하다 :있는 NSArray 또는 (배열 데이터 타입)과 계산하려고에할당있는 NSString 데이터를.
당신이 제대로 유지하지 못하는 컬렉션 객체 (NSArray, NSDictionary 등)가 있기 때문에 이런 일이 발생할 가능성이 큽니다.
NSZombies를 사용하여 출시 된 개체를 찾으십시오.
Get Info
Variables to be set in the environment
에서 NSZombieEnabled
이라는 변수를 만들고 그 값을 YES
으로 설정하십시오. 그것을 활성화하는 것을 잊지 마십시오.이 문제를 디버깅 한 후에는 NSZombies를 비활성화해야합니다. NSZombies는 메모리를 해제하지 않고 객체를 릴리스 된 것으로 표시합니다.
그러면 조만간 경고 메시지가 나옵니다.
NSZombies를 비활성화하려면 간단히 앞의 체크 표시를 제거하면됩니다.
아, 코멘트없이 투표를 싫어하는 ... –
문자열에 length
(으)로 전화하셨습니까?
어쩌면 사람이 필요합니다 내가 사용하는 이런 종류의 문제 있었을 때 : [ myarray retain];
myarray = [NSArray arrayWithObjects: ...];
후에는 그것을했다. 제 어레이가 너무 일찍 파괴 되었기 때문이라고 생각합니다. 하지만이 개체를 어떻게 지금 릴리스 할 수 있는지 알 수 없습니까? 그냥 [myarray autorelease]
? 유지할 반대가 있습니까?
StackOverflow에 오신 것을 환영합니다. 대답의 마지막 부분은 질문입니다. 메인 페이지에서 '질문하기'버튼을 사용하십시오. 그렇지 않으면 질문이 커뮤니티에 표시되지 않습니다. –
'retain '과 반대는'release'입니다. 'autorelease'는 현재의 autorelease 풀에 보존 된 객체에 대해'release'를 호출 할 책임이 있습니다. –
실제적인 예 :
때때로, 나는 아직 명확하게 이해하지 못하는 실제적인 차이가 있습니다. valueForKey
은 SOGo-3.1에서 작동하지 않았습니다.
`EXCEPTION: <NSException: 0x55f43f93e4d0> NAME:NSInvalidArgumentException REASON:-[WOContext ASProtocolVersion]: unrecognized selector sent to instance
objectForKey
반면 일을 (그리고 코드에서 elesewhere context
객체를 조회하는 일반적인 방법입니다) : 4의 코드는 context
객체에 사용할 수없는 "방법"ASProtocolVersion
를 호출하려고합니다.
컴파일러가 사용하는 https://github.com/inverse-inc/sogo/pull/217/files
을 참조하십시오. –
이 질문은 [this one] (http://stackoverflow.com/questions/3645213) 또는 [many others] (http://stackoverflow.com/search?q=unrecognized+selector)와 거의 같습니다. 질문하기 전에 검색을 시도할까요? – zoul