2011-08-26 2 views
1

나는이 비밀스러운 메시지를 듣고 있습니다. wait_fences : 답장을받지 못했습니다 : 10004003 나는 인터넷 검색을했고 사람들은 UITextField 또는 Alert를 적절히 해제하지 않는 것과 관련이 있다고 생각합니다. 내 애플 리케이션에 하나의 텍스트 필드가 있고 내가 resignFirstResponder 등을 사용하여 제대로 릴리스 확신합니다 ... 내가 MPMusicPickerController를 여는 중일 때이 메시지가 나타납니다, 어떤 차이가 있습니다. 내 앱 전체가 엉망이되어서 정말 고쳐야합니다!wait_fences : 회신을받지 못했습니다 : 10004003?

감사합니다, 브래드

EDIT1 : 일반적으로

- (IBAction)openMediaPicker:(id)sender { 
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; 
    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeAny]; 
    mediaPicker.delegate = self; 
    mediaPicker.allowsPickingMultipleItems = YES; 
    mediaPicker.prompt = @"Select songs to play"; 
    [self presentModalViewController:mediaPicker animated:YES]; 
    [mediaPicker release]; 
} 

// Media picker delegate methods 
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection { 

    AppAppDelegate *appDelegate = (AppAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [appDelegate.tr2 stop]; 
    [playstopButton setHidden:NO]; 
    [playstopButton setImage:[UIImage imageNamed:@"Stop-Music-Button.png"] forState:UIControlStateNormal]; 
    // We need to dismiss the picker 
    [self dismissModalViewControllerAnimated:YES]; 
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; 

    // Assign the selected item(s) to the music player and start playback. 
    [self.musicPlayer stop]; 
    [self.musicPlayer setQueueWithItemCollection:mediaItemCollection]; 
    [self.musicPlayer play]; 

} 

- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker { 
    // User did not select anything 
    // We need to dismiss the picker 
    [self dismissModalViewControllerAnimated:YES]; 
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; 
} 
+1

앱이 고장나요? – Daniel

+0

@Daniel은 앱을 중단시키지 않지만이 문제로 인해 가장 필요한 방법을 수행하지 않습니다. –

+1

아마 작동하지 않는 것을 보여주는, 우리는 당신의 문제를 쉽게 식별 할 수 있습니다. – Daniel

답변

4

는 :

  1. viewDidAppearviewWillAppear의 모든 애니메이션을해서는 안된다. viewWillAppear에만 데이터, 매장 등을 준비하십시오. 당신이 (당신의 MPMediaPickerController처럼) 애니메이션 대화가있을 때 또한

  2. wait_fences이 발생할 수있는 매우 일반적인 경우는 경우에 당신은 필요 등 (사용자 정의 모달 UIViewController처럼) 표시하기 위해 다른 애니메이션보기를 유발하는 것입니다 다음과 같이 두 번째의 ViewController의 프리젠 테이션을 "연기"

    [self performSelector:@selector(showMyOtherViewController) 
           withObject:nil 
           afterDelay:0.1]; 
    

는 또한이 답변 https://stackoverflow.com/7194182을 확인하십시오.

편집

좋은 방법을 "디버그"충돌 애니메이션은 간단하게 할 단순히

[self presentModalViewController:mediaPicker animated:YES]; 
    [self dismissModalViewControllerAnimated:YES]; 

대신 이렇게 코드에서 NO에 애니메이션을 설정하는 것입니다 :

[self presentModalViewController:mediaPicker animated:NO]; 
    [self dismissModalViewControllerAnimated:NO]; 

을 입력하고 wait_fences 오류가 사라지고 올바른 동작 (애니메이션없이)이 있는지 확인합니다. 달성했다. 이 경우에는 performSelector:withObject:afterDelay: -magic 중 일부가 필요합니다.

편집 : 당신이 아이폰 OS 5.0에서 다음과 같은 작업을 수행 할 수 있습니다 : 첫째, 현재 제시된보기 컨트롤러 (예 : ModalViewController)이 기각되고 애니메이션이 끝나면 것을 의미

[self dismissViewControllerAnimated:YES completion:^{ 
    [self presentViewController:anotherViewController animated:YES completion:NULL] 
} 

다른 블록을 호출 할 수 있습니다. 이 경우 다른보기 UIViewController

+0

정확히 wait_fences는 무엇입니까? 그것은 내 응용 프로그램을 느리게, 덜 효율적으로 만들 수 있습니까? –

+0

wait_fences는 정확히 무엇을 의미하는지 모르지만 애니메이션 및 UI 드로잉 관련 오류 또는 "충돌"이 발생할 때 발생한다고 생각합니다. 나는 그것이 당신의 App을 더 느리게 만들지는 않을 것이라고 생각하지만, 분명히 해결하려고 노력해야하는 당신의 코드에 문제가 있음을 암시한다. – Besi

+0

나는 당신이 내 영웅이며, 며칠 동안이 문제를 고치려고 노력하고 있으며 performSelector : withObject : afterDelay : 메서드가 트릭을했음을 알려 드리고자합니다. – robhasacamera

0

또한 UDownissWithButtonIndex :로 clickedButtonAtIndex :를 대체하면 UIActionSheet 또는 UIAlertView를 사용할 때 오류 메시지가 사라지는 것으로 나타났습니다.

관련 문제