在释放对象之前检查nil

时间:2010-10-18 11:50:49

标签: iphone objective-c cocoa-touch memory

这是好事还是坏事?

if (!theConnection && !receivedData) {
        // release the connection, and the data object
        [theConnection release];
        // receivedData is declared as a method instance elsewhere
        [receivedData release];
    }

2 个答案:

答案 0 :(得分:5)

向nil对象发送任何消息都没有效果,因此您可以安全地删除该检查。

此外,如果对象中只有1个为非零,则代码会泄漏内存。

答案 1 :(得分:2)

这是不好的做法 - 只需查看Apple的示例代码,就可以了解它应该是什么样的。

使用[theConnection release];

[theConnection release]; theConnection = nil;

receivedData相同。