我发现在我的代码中我发布了从未分配过的对象,我没有收到任何错误。该应用程序不会崩溃。一切正常。我用的是产品 - >分析并告诉我一切都很好。
我曾经认为发布未分配的对象导致应用程序崩溃。所以我的问题是 - 当没有分配对象被释放时程序崩溃(即我错过了我的代码中必不可少的东西导致这样的行为)或者一切都按预期运行?
答案 0 :(得分:2)
这完全取决于指向“未分配”对象的指针是否为nil
。在Objective-C中,发送给nil
的消息不执行任何操作。应用程序崩溃是由向悬空指针(或垃圾指针等)发送消息引起的。
答案 1 :(得分:1)
如果尚未为对象分配内存,则对象指向nil。当你打电话
[myobj release]
你真的发送消息发布到一个零对象。在这种情况下,Obj-C不做任何事情,这就是你的应用程序不会崩溃的原因。