我开发了一款目前可以在iphone / ipad / ipod touch上运行的游戏,没有任何问题。
最近我需要在模拟器上运行它,并且我发现在启动某个级别时它在特定的加载功能上崩溃了,我去了user / Library / Logs / DiagnosticReports中的崩溃报告,发现abort()正在被执行在游戏对象之一的构造函数被调用后调用:

0   libSystem.B.dylib               0x93100ef6 __kill + 10
1   libSystem.B.dylib               0x93100ee8 kill$UNIX2003 + 32
2   libSystem.B.dylib               0x9319362d raise + 26
3   libSystem.B.dylib               0x931a9679 __abort + 124
4   libSystem.B.dylib               0x9318c3bc release_file_streams_for_task + 0
5   gamehere                        0x0004d650 Piso::Piso(W3d*, int, int) + 758 (Piso.cpp:45)


所以我转到“ Piso.cpp”,然后看到第45行只是该对象的构造函数的结尾括号。

我真的不知道导致崩溃的原因是什么,在该构造函数中我加载了纹理,为该类初始化了一些计数器,数组和其他内容,再次,这些在设备上运行时都引起了问题...

我真的很感谢在哪里寻找一些想法来解决此问题。
谢谢!。

最佳答案

右括号表示某些局部变量的析构函数。例如:

struct Test {
    ~Test() {
        throw "error";
    }
}

int main() {
    int b;
    {
        Test a;
    };    //On your stack trace, here it will be pointed as the error line.
    b = 1;
};

09-08 05:19