1

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 

아무도 나를 도울 수 있다면, 나는 영원히 감사 할 것입니다!

감사

스튜어트

+0

View Controller에 대해 좀 더 알고 싶습니다. UIImage가 두 번 출시 된 것처럼 보입니다 ... UIImage 속성이 View Controller에 있습니까? 또한 처리 했으므로 다른 오류 메시지가 표시되지만 시뮬레이터에서 카메라를 사용할 수 없다는 것을 알고 있습니까? 사용자의 기능을 테스트하는 것이 가장 좋습니다. 그렇지 않으면 iPod Touch에서 예외가 생성됩니다. 또한 코드가 절대 대리인 콜백까지 도달하지 않는다는 것을 중단 점을 통해 확인할 수 있습니까? – makdad

+1

문제는 부모 'UIViewController'에 있다고 생각합니다. 프로그래밍 방식으로 생성한다고합니다. 코드를 보여줄 수 있습니까? –

+0

@phooze - 예, 옵션이 표시되기 전에 사용할 수있는 카메라가 있는지 여부를 테스트하고 있습니다. @ St3fan - 선택기를 호출하는 코드는 UIViewController의 하위 클래스이며 응용 프로그램 대리인에서 만들어 져서 창에 추가됩니다. 이후 이미지 선택 도구를 새 UIViewController로 대체했습니다. 단 하나의 UIView가 멋진 빨간색 배경색으로 표시되고 presentModalViewController에 표시되는 동안 창에 표시가 완료되자 마자 충돌이 발생합니다. BAH! – hiptomorrow

답변

2

I는 오토 릴리즈되고 있던 화상을 해제 하였다. 기묘한 경우에는 코드가 작동하지만 대부분은 떨어졌습니다. 3.2에서이 오류로 인해 오류가 발생하지 않았거나 표시되지 않았으므로 자동 스크롤 기능이 필요하지 않은 동안 자동 스크롤 기능이 작동하지 않을 가능성이 있습니다. 많은 시행 착오가 그것을 발견했습니다.