저는 root viewcontroller에 풀어 놓은 여러 개의 viewcontroller가 있습니다. 대부분의 viewcontrollers에서는 unwind segue가 앱을 손상시키지 않고 잘 작동합니다. CLlocationmanager를 사용하는 viewcontroller만이 루트 viewcontroller에 대한 unwind segue를 수행 할 수 없습니다. 다음 코드는 내 코드의 차이를 만드는 줄입니다.위치 관리자로 인해 긴장을 풀고 난 후 충돌이 발생했습니다.
//Init the location Manager
locationManager = [[CLLocationManager alloc] init];
[locationManager requestWhenInUseAuthorization];
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
locationManager.delegate = self;
내 코드의이 섹션에 설명을 추가하면 긴장을 풀 수 있습니다. 특히 마지막 줄이 차이를 만듭니다. 나는 푸는 전에 locationmanager를 풀려고했다. 때로는 효과가 있습니다. 때때로 그렇지 않습니다. 디버그 콘솔은 다음과 같이 말합니다 :
0x10bfe1005: movq (%rdi), %r11
0x10bfe1008: movq %rsi, %r10
0x10bfe100b: andl 0x18(%r11), %r10d<---Thread 1: EXC Bad_Access(code=1, adress=0x18)
0x10bfe100f: shlq $0x4, %r10
0x10bfe1013: addq 0x10(%r11), %r10
무엇을 의미합니다. 나는 무엇을해야할지 모른다.
편집
이 종류의 작동이
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
[locationManager stopUpdatingLocation];
[locationManager release];
}
을 추가 한 후. 나는 5 번 시도했다. 다음 다시 추락 :(정말 이상한.하지만 확실하지 않은 오류 메시지가 변경된 것 같습니다. "WebThread"(아래 참조) 말한다. 또한 대리자 메서드가있는 webview 있어요 .Webview 같이 공개하려고합니다. 잘.
libobjc.A.dylib`objc_msgSend:
0x32f9af60: cbz r0, 0x32f9af9e ; objc_msgSend + 62
0x32f9af62: ldr.w r9, [r0]
0x32f9af66: ldrh.w r12, [r9, #12] <-----WebThread(10):EXC_bad_access(code=1, address=0x100000c)
0x32f9af6a: ldr.w r9, [r9, #8]
0x32f9af6e: and.w r12, r12, r1
0x32f9af72: add.w r9, r9, r12, lsl #3
0x32f9af76: ldr.w r12, [r9]
0x32f9af7a: teq.w r12, r1
0x32f9af7e: bne 0x32f9af86 ; objc_msgSend + 38
0x32f9af80: ldr.w r12, [r9, #4]
0x32f9af84: bx r12
0x32f9af86: cmp.w r12, #0x1
0x32f9af8a: blo 0x32f9af98 ; objc_msgSend + 56
0x32f9af8c: it eq
0x32f9af8e: ldreq.w r9, [r9, #4]
0x32f9af92: ldr r12, [r9, #8]!
0x32f9af96: b 0x32f9af7a ; objc_msgSend + 26
0x32f9af98: ldr.w r9, [r0]
0x32f9af9c: b 0x32f9b1e0 ; _objc_msgSend_uncached
0x32f9af9e: mov.w r1, #0x0
0x32f9afa2: bx lr
0x32f9afa4: nop
0x32f9afa6: nop
0x32f9afa8: nop
0x32f9afaa: nop
0x32f9afac: nop
0x32f9afae: nop
0x32f9afb0: nop
0x32f9afb2: nop
0x32f9afb4: nop
0x32f9afb6: nop
0x32f9afb8: nop
0x32f9afba: nop
0x32f9afbc: nop
0x32f9afbe: nop
EDIT2
좋아, 당신은 당신이 긴장을 풀고 전에 위치 관리자를 중지해야 위치 관리하고 작동 prepareforsegue 방법에서 웹보기를 해제 한 후.
델리게이트를 nil로 설정해 보았습니까? 'locationManager.delegate = nil;'? – Fogmeister
코드에서 충돌하는 부분을 찾으려면 예외 중단 점을 추가해야합니다. – Fogmeister