sourcecode

"wait_message: 응답을 수신하지 못했습니다. 10004003"?

codebag 2023. 7. 27. 21:56
반응형

"wait_message: 응답을 수신하지 못했습니다. 10004003"?

다음 코드 행으로 인해 보기가 로드될 때(처음 로드될 때만) 이 암호화되지 않은 오류가 발생합니다.

- (void)viewWillAppear:(BOOL)animated
{
    [textField becomeFirstResponder];
}

이로 인해 앱이 응답하지 않는 것처럼 느껴지는 현저한(시뮬레이터에서도 3~4초 정도) 지연이 발생합니다.이거 어떻게 고치는지 아는 사람?Apple 사이트나 여기 또는 Google에서 문서를 찾을 수 없습니다.

이상하게도 라인을 넣으면 반대의 상황이 발생합니다.-viewDidAppear:-viewWillAppear:즉, 키보드가 처음 표시될 때만 오류를 인쇄하고 다시는 표시되지 않는 대신 오류는 처음 표시되지 않고 이후 매번 인쇄됩니다.이것은 저에게 큰 두통을 일으키고 있습니다.

재정의-viewDidAppear:,것은 아니다.-viewWillAppear그리고 꼭 전화하세요.[super viewDidAppear:]화면에 없을 때는 애니메이션을 수행하면 안 됩니다("나타날 것"). 리고그.-viewDidAppear:당신이 반드시 전화해야 한다고 설명하는 문서들.super왜냐하면 그들은 그들만의 할 일이 있기 때문입니다.

다음과 같은 오류가 발생했습니다.

  1. 모달 보기 해제
  2. 기본 보기 업데이트
  3. 새 모달 보기 표시

저는 제가 그것을 장치가 아닌 시뮬레이터에서만 얻는다는 것을 알아차렸습니다.게다가, 저는 무한 루프에 휘말렸습니다.

저의 해결책은 새로운 모달 뷰의 발표를 연기하는 것이었습니다.보기 계층 구조를 빠르게 업데이트하면 애플 코드에 약간의 경쟁 상태가 발생한 것으로 보입니다.

이를 염두에 두고 다음을 시도해 보십시오.

     - (void)viewDidAppear:(BOOL)animated{

            [super viewDidAppear:animated];
            [textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.1];
  }

아직 화면에 나타나지 않는 UI 텍스트 필드의 키보드를 표시하는 데 문제가 있을 수 있습니다.이것은 저와 비슷한 문제를 일으킬 수 있습니다.

또한 만약을 위해 키보드를 표시하기 전에 계층을 업데이트할 시간을 주기 위해 일시 중지합니다.

이게 도움이 되길 바랍니다.

메인 스레드의 UI와만 상호 작용하는지 확인합니다.받았습니다wait_fences: failed to receive reply: 10004003관련 코드가 백그라운드 스레드에서 실행되었기 때문에 약 5초 동안 UIAlertView가 표시되기를 기다리는 동안.코드를 블록에 넣고 메인 스레드로 전송하면 다음과 같이 확인할 수 있습니다.

dispatch_async(dispatch_get_main_queue(), ^{
    if (!success) {
        // Inform user that import failed
        UIAlertView * importFailedAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ErrorTitle5", @"Import failed") 
                                                                     message:NSLocalizedString(@"Error5", @"Something went wrong") 
                                                                    delegate:nil 
                                                           cancelButtonTitle:NSLocalizedString(@"OK", nil) 
                                                           otherButtonTitles:nil];
        [importFailedAlert show];
    }
});

제가 구글에서 찾을 수 있는 모든 것을 시도했지만 아무 것도 작동하지 않았습니다. 이것이 저에게 문제를 해결해 준 것입니다.중요한 것은 내가 유언장에서 이 일을 하고 있다는 것입니다.WithButtonIndex 대리자 메서드입니다.다른 데서 하기 전에.

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
{
    [myTextField resignFirstResponder];
    [myTextField removeFromSuperview];  
    [myTextField release];  
}

viewDidLoad에 다음 줄이 있으면 이 메시지가 발생할 수 있습니다.다음 행에 대해 설명합니다.

[[UIApplication sharedApplication] setStatusBarHidden:YES]; //This line should be commented

대신 응용프로그램 목록 파일에서 상태 표시줄을 비활성화할 수 있습니다.

몇 번의 테스트를 거친 후 큰 규칙은 "애니메이션 폐기 또는 애니메이션 쇼 전에는 애니메이션을 수행하지 마십시오."입니다.

예:

  • 하지 마-dismissModalViewControllerAnimated:YES 위임 후.UIAlertView -alertView:willDismissWithButtonIndex: 후 합니다.)-alertView:didDismissWithButtonIndex:콜백)
  • .becomeFirstResponder보기 컨트롤러가 화면에 표시되기 전에 표시됩니다.

나쁜 일이 생길 수도 있습니다.

그것이 유용하기를 바랍니다 ;-)

이것은 제가 키보드를 애니메이션이나 지연 없이 바로 보여줄 수 있게 해주었습니다.

허락하다textField 변수가 됩니다.인니변의 입니다.MyViewController의).UIViewController).

[textField becomeFirstResponder]initWithNibName:bundle:)UIViewController) 또는initWithStyle:)UITableViewController), 해당되지 않음viewDidLoad항목:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        [textField becomeFirstResponder];
    }
    return self;
}

를 하고 에 불러보세요.UIViewController항목:

MyViewController *viewController = [[MyViewController alloc] init];
[viewController.textField becomeFirstResponder];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];

당신은 했습니다.[textfield becomeFirstResponder];

코드의 에 그고코드의텍필드값후얻은을서에스트리,후얻▁do▁and,[textfield resignFirstResponder];그게 도움이 될 거예요.

현재 iPhone Simulator 4.0을 실행 중인 경우 화면을 회전할 때(또는 화면을 회전한 후 애니메이션을 만들 때) 이 오류 메시지가 애니메이션에서 1-2초 지연과 함께 자주 나타납니다.

이 Simulator 버전의 버그이므로 곧 수정해야 합니다.

자세한 내용은 여기를 참조하십시오. http://www.iphonedevsdk.com/forum/iphone-sdk-development-advanced-discussion/17373-wait_fences-failed-receive-reply-10004003-a.html

당신의 문제는 관련이 있습니다.

오라이드를 합니다.viewDidappear,것은 아니다.viewWillAppear:

-(void) viewDidAppear:(BOOL) animated
{
 [super viewDidAppear:animated];
 [myTextField becomeFirstResponder];
}

이 UIAertView 코드를 사용하여 일대일로 시뮬레이션할 수 있습니다.

   UIAlertView *alert = [[UIAlertView alloc]
                   initWithTitle:NSLocalizedString(@"defineTitle",@"defineTitle")
                         message:NSLocalizedString(@"defineBody", @"defineBody")
                        delegate:self
               cancelButtonTitle:NSLocalizedString(@"Ok", @"Ok")
               otherButtonTitles:nil];
   [alert show];

NSLocalizedString이 Localizable.strings 파일에 정의되지 않은 경우 텍스트를 검색하는 데 시간이 오래 걸리므로 경고가 표시되고 "wait_fence: failed reply: 10004003"이 표시됩니다.

저는 Localizable.strings 파일에 텍스트를 추가하기만 하면 문제가 해결되었습니다.아마도 이것은 다른 사건들에도 해당되는 것일까요?

또한 UIA 경고 보기를 사용합니다.제가 해결한 것은 앞서 창고 연구소에서 언급한 바와 같이 아래와 같은 사직서를 받은 것입니다.

- (void)didPresentAlertView:(UIAlertView *)alertView
{
    [txtListingPassword becomeFirstResponder];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    [txtListingPassword resignFirstResponder];
}

UIAertView 딜러의 다른 딜러들은 문제를 해결하지 못했습니다.

문제는 애플의 코드에 인종 조건이 있다는 것입니다.일반적으로 이는 잘못된 UI 업데이트와 관련이 있습니다.

제 경험상, 당신은 슈퍼인 viewDidAppear, viewWillAppear 등에 전화를 걸지 않았습니다.또는 viewDidLoad 또는 viewWillAppear에 UIAertView를 표시하려고 합니다.

UIAertView를 추가할 때 프레임워크는 상위 뷰에 대한 참조가 필요합니다.그러나 WillAppear 또는 ViewDidLoad가 표시되면 보기가 실제로 표시되지 않습니다...UIAertView에서 사용할 수 있는 보기가 준비된 viewDidAppear로 코드를 이동하는 것을 고려해야 합니다.

텍스트 필드가 해당 보기에 포함되어 있습니까, 아니면 다른 보기에 포함되어 있습니까?해당 보기에 직접 포함된 항목에만 'becefirstReplessonder'를 보낼 수 있습니다.다른 위젯 구성요소에 저장된 경우 이 위젯에서 첫 번째 응답자 상태를 설정하지 않고 작성 중인 위젯에서 설정해야 합니다.예를 들어 경고 보기에 텍스트 필드를 추가하는 경우, 프로그램이 비동기식으로 진행되기 때문에 firstResponder가 될 까지 텍스트 필드가 표시되지 않을 수 있습니다.이 시점에서 텍스트 필드를 첫 번째 응답자로 설정합니다.)

는 또한 " 도메시받았니다습를저지다니▁message습받았저▁i▁the"라는 메시지를 받습니다.wait_fences: failed to receive reply: 10004003그리고 나의viewWill...그리고.viewDid...를 메드는메보니다냅만시로 보내는 것 외에는 .super저 같은 경우는 제가 몸이 불편할 때 일어납니다.UIAlertView내 안에서 보여주기GameViewController그리고 사용자는 대신 아이폰 원형 장치 버튼을 누른 다음 앱으로 돌아갑니다.이건 내 손에서 벗어난 것 같아요.

경고 보기 또는 작업 시트가 주 스레드에 표시되어야 합니다...따라서 동기식 연결을 만들고 다른 스레드에서 해당 작업을 수행하고 해당 작업에서 받은 출력을 기준으로 경고에 표시하면 wait_failed: failed reply: 10004003이라는 오류 메시지가 표시됩니다.당신은 뭔가를 할 수 있습니다.

[self performSelectotOnMainThread:@selector(handleOutput:) withObject:output waitUntilDone:YES/NO];

및 show alerts in handle출력 응답 문자열을 매개 변수로 전달하는 출력 메서드.

해결책이 있습니다!

저도 같은 오류가 있었습니다. 이제 해결책을 찾았습니다. 이것이 당신에게 도움이 될 수 있습니다.

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
  [self performSelector:@selector(YOUR_METHOD) withObject:nil afterDelay:0.1];
}

언급URL : https://stackoverflow.com/questions/1371346/wait-fences-failed-to-receive-reply-10004003

반응형