1
@implementation loadingViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // send request
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{

//inserting the response Data in database

[self performSegueWithIdentifier:@"loadingMenuSegue" sender:self];

}

@end

私はこのエラーがあります

* -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]、/ SourceCache / UIKit_Sim / UIKit-1914.84 / UIWindowController.m:188でのアサーションの失敗

*キャッチされなかった例外'NSInternalInconsistencyException'が原因でアプリを終了しています。理由:'遷移が既に進行中のときに、からへのモーダル遷移を開始しようとしています。viewDidAppear / viewDidDisappearが、現在の移行が完了したことを確認するのを待ちます。

4

2 に答える 2

3
@implementation loadingViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // send request
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{

//inserting the response Data in database

//remove perform Segue from her, because the process is not finish yet
// [self performSegueWithIdentifier:@"loadingMenuSegue" sender:self];

}

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self performSegueWithIdentifier:@"loadingMenuSegue" sender:self];
}

@end
于 2012-06-17T15:51:49.220 に答える
1

このエラーは、connectionDidFinishLoading:メソッドが以前に呼び出されていることを示している可能性がありますviewDidAppear:。その時点ではセグエを実行できないため、ivarまたはプロパティで(接続が終了したことを確認できるように)ある状態を保持したい場合があります。その後、viewDidAppear:実装でその状態をテストし、次の場合にセグエを実行できます。必要です。

于 2012-06-17T05:52:31.650 に答える