2012-05-12 2 views
1

내 테스트 앱이 UITableView를로드하고 오류가 [1421:12503] *** -[__NSArrayM class]: message sent to deallocated instance 0x10ae83e0에 의해 발생했습니다. 프로세스가 중단되면 main() 메서드에서 프로세스가 중지되었습니다.메시지가 할당 취소 된 인스턴스로 전송되어 UITableView 크래시가로드되었습니다.

그리고이 충돌은 ios 4.3.2 용 시뮬레이터에서만 발생합니다. ios 4.3.2와 ios 5.1에서는 괜찮습니다. 또한 ios 5.1 용 시뮬레이터에서는 괜찮습니다. 어떤 인스턴스가 해제되었는지 알 수 없습니다.

귀중한 단서를 찾기 위해 터미널에 malloc_history 1421:12503 0x10ae83e0 명령을 사용했습니다. 하지만 다음 정보 만 얻습니다.

> ALLOC 0x10ae83e0-0x10ae83f7 [size=24]: thread_ac2502c0 |start | main | UIApplicationMain | GSEventRun | GSEventRunModal | CFRunLoopRunInMode | CFRunLoopRunSpecific | __CFRunLoopRun | __CFRunLoopDoSource1 | 

    __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ | mshMIGPerform | 

_XCopyElementAtPosition | _AXXMIGCopyElementAtPosition | _copyElementAtPositionCallback | 
    -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:]| 
    -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) _accessibilityHitTest:withEvent:] | 
    -[UIView(UIViewAccessibility) __accessibilityHitTest:withEvent:] | 
    -[UITableViewAccessibility(Accessibility) _accessibilityHitTest:withEvent:] | 
    -[UITableViewSectionElement _accessibilityHitTest:withEvent:] | 
    -[UITableViewSectionElement accessibilityChildren] | 
    -[__NSPlaceholderArray init] | 
    -[__NSPlaceholderArray initWithCapacity:] | 
    +[__NSArrayM __new::] | __CFAllocateObject2 | class_createInstance | calloc | malloc_zone_calloc 

이 상황에 대한 단서를 제공해 주시겠습니까? 미리 감사드립니다!

답변

1

나는 데이터 소스에 대해 사용중인 NSArray이 자동으로 리 릴리스됨을 알고 있습니다. 그것을 확인하고 그것을 유지하십시오. 아마도이 문제가 해결 될 것이지만, 특히이 배열을 어떻게 작성하는지에 대해서는 어떤 코드가 없으면 확신 할 수 없습니다.

완료되면 dealloc에 배열을 놓아야합니다.

+0

안녕 다니엘, 귀하의 회신에 감사드립니다. 당신 말이 맞아요, 가변 배열이 잘못 발표됩니다. – mobguang

관련 문제