我需要为我的游戏使用划痕效果。这是几年前的示例代码。
https://github.com/oyiptong/CGScratch
它工作得很好,但是当我将它与导航控制器一起使用时,它会崩溃。
我的项目使用 ARC,我将文件标记为 -fno-objc-arc。这是源代码:
https://github.com/lifesaglitch/ScratchWithError
当我按下视图控制器,然后弹出,然后重新进入时,它崩溃了。
编辑:
当您将 all 转换为 arc,并将使用暂存视图的视图控制器标记为 -fno-objc-arc 时,它可以工作。但是,当您将临时视图标记为 -fno-objc-arc 时,它会再次崩溃。我的项目使用arc,我认为我不能将自己的视图控制器转换为-fno-objc-arc。
编辑2:
我将初始化代码修改为:
scratchable = CGImageRetain([UIImage imageNamed:@"scratchable.jpg"].CGImage);
它不再崩溃,但存在内存泄漏。并且 CGImageRelease 确实在 dealloc 方法中被调用过一次。