2012-10-10 7 views
0

매우 제한된 상황에서 중단이 발생하고 어떤 진술이나 진술이 원인인지 알아 내려고하고 있습니다. 콘솔은 말한다 :이 메서드는 무엇을 호출합니까? [NSPathStore2 setDelegate :]

인해 캐치되지 않는 예외 'NSInvalidArgumentException'응용 프로그램 종료, 이유는 : '- [NSPathStore2 setDelegate :] : 인식 할 수없는 선택기 인스턴스 0x1d50dcb0로 전송'

NSPathStore2가 표시되지 않습니다 내 코드에서 어디에서든지 사용할 수있는 일부 프레임 워크에서 호출해야합니다. 인스턴스 주소는 그 밖의 다른 곳에 나타나지 않으므로 그 주소가 무엇인지 알 수 없습니다.

중단 점을 사용하여 중단을 시도했지만 더 이상 발생하지 않습니다. 어쩌면 타이밍 문제 일 수도 있습니다. 나는 NSPathStore2가 NSString의 일부인 다른 글을 읽었으므로 여러 문자열 문에 print 문을 넣으려고 시도했지만 도움이되지 않았습니다. developer.apple.com에서 NSPathStore2를 검색해도 아무 것도 찾을 수 없습니다.

내가 생각하기에 중단은 init 메소드 중에 발생하지만 그 메소드는 길다. 그리고 완료되기 전에 다른 긴 메소드를 호출한다. 또한 Xcode에서 새로 설치 한 후에 만 ​​5 분 동안 일련의 작업을 실행 한 후에 만 ​​발생합니다. 앱을 두 번째 실행하면 앱이 중단되지 않습니다. 그래서 이것이 어디에서 왔는지 찾기 위해 많은 시간을 소비합니다.

+0

이것은 iOS 5.1.1을 사용하는 iPhone 4에서 테스트하는 Xcode 4.5입니다. 그리고 나는이 앱을위한 충분한 기억이 있다는 것을 확신한다. – RobertL

+0

확신 할 수없는 대표자를 지정 하시겠습니까? – mkral

+0

일반적으로 인식 할 수없는 선택자는 객체 클래스에 대한 잘못된 가정을 할 때 발생하므로 로깅 문자열 메소드가 도움이되지 않습니다. 어디서나 대리자를 설정하고 호출하는 개체의 클래스를 기록해야합니다. – ughoavgfhw

답변

1

이것은 할당 취소 된 개체가 여전히 어딘가에 사용되는 매우 일반적인 현상입니다. 디버그 구성에서 "좀비 개체 사용"을 선택하고 할당 해제 된 개체에서 메서드를 호출하는 위치를 찾습니다.

+0

나는 좀비가 그것을 찾았을 것이라고 생각하지 않는다. 나는 좀비에 대해 이미 생각해 왔지만 좀비는 보통 "EXEC_BAD_ACCESS"를 결과로 가져 왔지만 중단되었습니다. 하지만 답장을 보내 주셔서 감사합니다. 너의 생각은 가깝다. – RobertL

+0

다음 번에 참조 할 수 있도록 문제를 수정 한 내용을 알려주십시오. –