调用sprite kit中的Dealloc方法

Calling Dealloc method in sprite kit

作为确保场景被释放的测试,我添加了:

-(void)dealloc{

NSLog(@"scenename Dealloc);
} 

我注意到有时这个方法没有被调用,我以前有过关于保留周期的问题,我相信我已经解决了,主要问题是如果它有时被调用,它肯定应该每次都被调用?

我也听说在场景中使用这个方法中的nslog会导致它被覆盖,因此无法正确调用,导致场景没有被释放,这是真的吗?会不会是目前导致游戏崩溃的问题?即使有这些日志消息,我也确实看到了内存波动(上下波动)。

如果您想准确查看游戏中不同点存在的对象,可以使用分配工具。您可以在 XCode > 打开开发者工具 > Instruments

下找到它

按名称排列列表,然后查找您的项目名称。您应该会看到内存中存在多少不同的游戏对象。

正如上面的人之前所建议的那样,我有内存泄漏,这已通过调试和仪器解决。