내 응용 프로그램에는 UITextField와 같은 일부 항목이 포함 된 UIScrollView가 있으며 대부분이 뷰가이 스크롤 뷰와 함께로드 될 때 확대/축소 할 수 있습니다. 안팎으로 잘 작동합니다.EXC_BAD_ACCESS 코드 = 1 UIScrollView 집게 동작시 충돌
* thread #1: tid = 0x2503, 0x3b8155b6 libobjc.A.dylib`objc_msgSend + 22, stop reason = EXC_BAD_ACCESS (code=1, address=0x4)
frame #0: 0x3b8155b6 libobjc.A.dylib`objc_msgSend + 22
frame #1: 0x3552e9d4 QuartzCore`CALayerGetSuperlayer + 92
frame #2: 0x357c0e5e UIKit`-[UIView(Hierarchy) containsView:] + 34
frame #3: 0x358eb3d4 UIKit`-[UITextSelectionView affectedByScrollerNotification:] + 140
frame #4: 0x35a5b394 UIKit`-[UITextSelectionView scaleWillChange:] + 24
frame #5: 0x338c7036 CoreFoundation`_CFXNotificationPost + 1426
frame #6: 0x341dd598 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 72
frame #7: 0x341e105a Foundation`-[NSNotificationCenter postNotificationName:object:] + 30
frame #8: 0x35910bea UIKit`-[UIScrollView _updatePinchGestureForState:] + 946
frame #9: 0x3589bd88 UIKit`_UIGestureRecognizerSendActions + 128
frame #10: 0x358633f4 UIKit`-[UIGestureRecognizer _updateGestureWithEvent:] + 392
frame #11: 0x35a50a38 UIKit`___UIGestureRecognizerUpdate_block_invoke_0543 + 48
frame #12: 0x3578782e UIKit`_UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 218
frame #13: 0x35786292 UIKit`_UIGestureRecognizerUpdate + 1274
frame #14: 0x357911e6 UIKit`-[UIWindow _sendGesturesForEvent:] + 766
frame #15: 0x35790db2 UIKit`-[UIWindow sendEvent:] + 90
frame #16: 0x3577e800 UIKit`-[UIApplication sendEvent:] + 380
frame #17: 0x3577e11a UIKit`_UIApplicationHandleEvent + 6154
frame #18: 0x374725a2 GraphicsServices`_PurpleEventCallback + 590
frame #19: 0x374721d2 GraphicsServices`PurpleEventCallback + 34
frame #20: 0x3394b172 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
frame #21: 0x3394b116 CoreFoundation`__CFRunLoopDoSource1 + 138
frame #22: 0x33949f98 CoreFoundation`__CFRunLoopRun + 1384
frame #23: 0x338bcebc CoreFoundation`CFRunLoopRunSpecific + 356
frame #24: 0x338bcd48 CoreFoundation`CFRunLoopRunInMode + 104
frame #25: 0x374712ea GraphicsServices`GSEventRunModal + 74
frame #26: 0x357d2300 UIKit`UIApplicationMain + 1120
frame #27: 0x000134a4 MyApp`main(argc=3, argv=0x2fdefc68) + 48 at main.m:14
frame #28: 0x00013470 MyApp`start + 40
: 나는 항상 다음과 같습니다 충돌을 얻을
CALayerGetSuperlayer called on instance of __NSArrayM
CALayerGetSuperlayer called on instance of NSShadow
CALayerGetSuperlayer called on instance of __NSCFString
CALayerGetSuperlayer called on instance of __NSCFType
CALayerGetSuperlayer called on instance of UIButtonContent
그리고 다른 시간을 : 나는 다음과 같이 그 콘솔에서 확대 및 축소 할 때
그러나, 가끔 어떤 메시지를 얻을
내 응용 프로그램은 ARC를 사용하며 좀비가 켜져있는 상태에서 실행하려고 시도합니다.이 경우 앱이 충돌하고 악기에 문제가 표시되지 않습니다.
어떤 일이 벌어지고 있는지 또는이 문제를 해결하기 위해해야 할 일에 대한 아이디어가 있습니까?
편집 : Steve의 제안에 따라 다시 들어가서 좀비가 켜진 상태에서 다시 확인했는데 처음으로 잘못 처리 한 것 같습니다. 이제 좀비를 찾고있는 Instruments와 시뮬레이터를 실행할 때 컨트롤이 포함 된 UIScrollView가 포함 된 모달 대화 상자를 닫을 때 좀비가 표시됩니다. 좀비가 나타나면 여기에 악기의 화면 캡처입니다 :
것은 여기에서 미치게하는 것 것은 내가 열고 나는 충돌 또는 게재 좀비를 얻기 전에 모달 여러 번 종료해야한다는 것입니다. 좀비 객체의 객체 요약 내역에 내 코드가 표시되지 않습니다.
내 생각에, 어떻게 든 UITextSelectionView에 첨부 된 레이어가 너무 일찍 할당 해제 된 것처럼 보입니다. 충돌을 일으키기 위해 당신은 무엇을해야합니까? 맞춤 레이어로 이상한 일을하고 있습니까? dealloc 메쏘드에 중단 점을 추가하여 유용한 것을 찾을 수 있습니다 :'br s -n "- [UITextSelectionView dealloc]"'. CALayer와 똑같은 작업을 시도해 볼 수도 있습니다 만, 그 중 하나와 관련된 많은 중단 점이있을 것으로 생각됩니다. 즉, 이것은 절대적인 추측입니다. –
또한, 의도하지 않게 당신이 작업하고있는 앱의 이름을 유출 한 것 같습니다. 내 마케팅 담당자가 그 말에 대해 비하하는 뭔가를 갖게 될 것이라고 확신하지만, 귀하의 회사에 따라 다릅니다. –
또 다른 생각 : 당신은/절대적으로/확실히 좀비를 켜고 있습니까? 올바른 대상을 사용하도록 설정 했습니까? 올바른 타겟을 사용하도록 설정 했습니까? 당신은'NSString * a = @ "a"와 같은 어떤 것으로 강제로 충돌 할 수 있어야합니다; CFRelease (__ bridge a); [길이]; - 이것이 좀비 도구에 나타나는지보십시오. –