테스트 도중 앱이 충돌하여 할당 해제 된 UINavigationItem
에게 메시지를 보냈습니다. 저는 Instruments를 사용하여 보았습니다 만, 모든 릴리스와 유지는 균형 잡힌 모습으로 보입니다. 변수를 유지하지 않고 변수에 매달려있는 것처럼 보입니다. 메시지가 전송되는 곳을 찾고 싶습니다. 개체가 수신 할 수있을만큼 오래 살아 있는지 확인할 수 있도록하고 싶습니다.메시지를 보내는 곳을 어떻게 알 수 있습니까?
콘솔의 오류는 다음과 같습니다
0 CoreFoundation ___forwarding___
1 CoreFoundation _CF_forwarding_prep_0
2 UIKit -[UINavigationItemButtonViewAccessibility(SafeCategory) accessibilityTraits]
3 UIAccessibility -[NSObject(NSObjectAccessibility) accessibilityAttributeValue:]
4 UIAccessibility _copyAttributeValueCallback
5 AXRuntime _AXXMIGCopyAttributeValue
6 AXRuntime _XCopyAttributeValue
7 AXRuntime mshMIGPerform
8 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__
9 CoreFoundation __CFRunLoopDoSource1
10 CoreFoundation __CFRunLoopRun
11 CoreFoundation CFRunLoopRunSpecific
12 CoreFoundation CFRunLoopRunInMode
13 GraphicsServices GSEventRunModal
14 GraphicsServices GSEventRun
15 UIKit UIApplicationMain
16 MyApp Functional Tests main [myapp]/main.m:14
17 MyApp Functional Tests start
...하지만 아무도 내 코드입니다 :
-[UINavigationItem safeValueForKey:]: message sent to deallocated instance 0x11afab80
스택 추적입니다. 메시지를 보내는 곳을 어떻게 알 수 있습니까?
를 해결할
을 NSZombieEnabled NsDebugEnabled? 누수? 좀비를 켰어? –
좀비 할당. – Simon
'grep''item = [UINavigationItem alloc] ...'에 대한 소스 일 가능성이 높습니다. 아마도'self.item'을 사용하여 유지해야 할 것입니다. @property도 잘못 될 수 있습니다. –