presentModalViewController와 함께 제공되는 UIImagePickerController에 문제가 있습니다. 보기가 표시되면 (카메라 또는 사진 앨범처럼) 앱이 충돌합니다.UIImagePickerController 문제
전체 UI가 인터페이스 빌더가 아닌 코드로 작성됩니다. ios4에서 실행되도록 코드를 업데이트 한 이후로만 작업이 중단되었습니다. 누수를 사용하면 아무 것도 찾을 수 없으며 총 메모리 할당량은 약 5MB입니다. 다음과 같이
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[imagePicker setDelegate:self];
[imagePicker setAllowsEditing:YES];
[imagePicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModePhoto];
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
그리고 대표 - - YES로 NSZombiesEnabled 설정
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *selectedImage = [info objectForKey:UIImagePickerControllerEditedImage];
UIImage *newImage = [self createGameImage:selectedImage];
[gameOptionsImageDisplay setImage:[self resizeImage:newImage toSize:CGSizeMake(95, 95)]];
[self dismissModalViewControllerAnimated:YES];
[mainView setFrame:CGRectMake(0, 0, 320, 480)];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissModalViewControllerAnimated:YES];
[mainView setFrame:CGRectMake(0, 0, 320, 480)];
}
나를 말하고있다 -
*** -[UIImage isKindOfClass:]: message sent to deallocated instance 0x142fc0
여기
내가 카메라 선택기를 제시 사용하고 코드입니다
스택 추적은 다음과 같습니다. -
0 0x313f7d7c in ___forwarding___
1 0x3138a680 in __forwarding_prep_0___
2 0x3166dad2 in -[UIImageView(UIImageViewInternal) _canDrawContent]
3 0x3166c652 in -[UIView(Internal) _didMoveFromWindow:toWindow:]
4 0x3166c50e in -[UIView(Internal) _didMoveFromWindow:toWindow:]
5 0x3166c50e in -[UIView(Internal) _didMoveFromWindow:toWindow:]
6 0x3166c50e in -[UIView(Internal) _didMoveFromWindow:toWindow:]
7 0x3166c50e in -[UIView(Internal) _didMoveFromWindow:toWindow:]
8 0x3166aa8a in -[UIView(Hierarchy) _postMovedFromSuperview:]
9 0x31672df6 in -[UIView(Hierarchy) removeFromSuperview]
10 0x316d76ee in -[UITransitionView _didCompleteTransition:]
11 0x31754556 in -[UITransitionView _transitionDidStop:finished:]
12 0x316bc97a in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
13 0x316bc884 in -[UIViewAnimationState animationDidStop:finished:]
14 0x33e487c0 in run_animation_callbacks
15 0x33e48662 in CA::timer_callback
16 0x313caa5a in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
17 0x313ccee4 in __CFRunLoopDoTimer
18 0x313cd864 in __CFRunLoopRun
19 0x313768ea in CFRunLoopRunSpecific
20 0x313767f2 in CFRunLoopRunInMode
21 0x329f36ee in GSEventRunModal
22 0x329f379a in GSEventRun
23 0x316692a6 in -[UIApplication _run]
24 0x31667e16 in UIApplicationMain
25 0x00002726 in main at main.m:14
아무도 나를 도울 수 있다면, 나는 영원히 감사 할 것입니다!
감사
스튜어트
View Controller에 대해 좀 더 알고 싶습니다. UIImage가 두 번 출시 된 것처럼 보입니다 ... UIImage 속성이 View Controller에 있습니까? 또한 처리 했으므로 다른 오류 메시지가 표시되지만 시뮬레이터에서 카메라를 사용할 수 없다는 것을 알고 있습니까? 사용자의 기능을 테스트하는 것이 가장 좋습니다. 그렇지 않으면 iPod Touch에서 예외가 생성됩니다. 또한 코드가 절대 대리인 콜백까지 도달하지 않는다는 것을 중단 점을 통해 확인할 수 있습니까? – makdad
문제는 부모 'UIViewController'에 있다고 생각합니다. 프로그래밍 방식으로 생성한다고합니다. 코드를 보여줄 수 있습니까? –
@phooze - 예, 옵션이 표시되기 전에 사용할 수있는 카메라가 있는지 여부를 테스트하고 있습니다. @ St3fan - 선택기를 호출하는 코드는 UIViewController의 하위 클래스이며 응용 프로그램 대리인에서 만들어 져서 창에 추가됩니다. 이후 이미지 선택 도구를 새 UIViewController로 대체했습니다. 단 하나의 UIView가 멋진 빨간색 배경색으로 표시되고 presentModalViewController에 표시되는 동안 창에 표시가 완료되자 마자 충돌이 발생합니다. BAH! – hiptomorrow