0

何らかの理由で、実行中のブロック内で CCLayer サブクラスを呼び出すと、コードが EXE_BAD_ACCESS でクラッシュするように見えます。

[[DataModel sharedInstance] saveWithSuccess:^{
                CCAlertView *alertView = [[CCAlertView alloc] initWithMessage:@"Unsaved Changes" detail:@"You have unsaved changes, would you like to save?" andButtons:@[@"Save", @"Continue", @"Cancel"]];
                alertView.delegate = (id <CCAlertViewDelegate>)self;
                [self.controls addChild:alertView z:100 tag:kAlertViewTag];
            } failure:^{
                CCAlertView *alertView = [[CCAlertView alloc] initWithMessage:@"Save Failed" detail:nil andButtons:@[@"Okay"]];
                alertView.delegate = (id <CCAlertViewDelegate>)self;
                [self.controls addChild:alertView z:100 tag:kAlertViewTag];
}];

何が間違っているのか正確にはわかりませんが、それを捨てているのはブロックですか? 他の場所のコードでこの行を使用していますが、機能します。

4

1 に答える 1

0

ああ、次を使用してビューを追加する必要があることに気付きました

[[NSOperationQueue mainQueue] addOperationWithBlock:^{}];
于 2013-01-21T23:29:14.660 に答える