cocos2d と UIKit を混在させると、現在、奇妙な動作が発生しています。私はゾンビを追跡してきましたが、クラッシュを引き起こすのは常にオーバーリリースです。これはあいまいであることがわかったので、ネイティブの uikit オブジェクトを使用したときにこれが発生するシナリオを詳細にスケッチします。
私はこのコードを持っています:
// 新しい UIActivityViewController を作成し、それを appDelegate viewController に提示します
self.activityViewController = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:tempImage, nil]
applicationActivities:nil];
[[appDelegate viewController] presentViewController:self.activityViewController
animated:YES
completion:nil];
これを初めて呼び出すと、viewController がオンになり、閉じることができます。2 回目に新しい ActivityController を作成しようとすると、クラッシュします。
これは、UIViewController サブクラスを削除し、UIKit 要素を含む CCDirector を開始する場合にも当てはまります。奇妙なことに、最初の UIViewController のプロパティでオーバーリリースが発生しますが、cocos2D シーンに切り替えていないときは発生しません。
ARC を使用するプロジェクトで cocos2D を実行していますが、ARC を使用しないという選択肢はありません。
誰かがそのような問題を抱えていて、私を正しい方向に向けることができるなら、そうしてください.
ありがとう !