我目前在将 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 会亮起,我可以关闭。我第二次尝试创建一个新的 ActivityController 它崩溃了。
现在,在删除 UIViewController 子类,然后启动包含 UIKit 元素的 CCDirector 时,情况似乎也是如此。奇怪的是,我在第一个 UIViewController 的属性上得到了过度释放,而在不切换到 cocos2D 场景时我没有。
我在使用 ARC 的项目中运行 cocos2D,不使用 ARC 不是一种选择。
如果有人遇到过这样的问题并且可以指出我正确的方向,请这样做。
谢谢 !