2011-09-15 55 views

回答

5

即使你释放一个对象,你的变量仍然会指向某个东西。它指向的是未定义的。它仍然可以指向旧对象,或指向内存中的某个点。将它设置为零可以避免将消息发送到指向的任何地方,并防止错误(消息传递nil不做任何事情)。

这里是一个更好的状态是一个答案:Setting pointers to nil, objective-c

1

这主要需要做的与多线程,如果其他线程试图访问您发布的对象并设置为nil它不会崩溃。您可以发送消息到nil对象,它将不会执行任何操作。

但是,如果它只是释放你正在发送消息给释放的对象,你的应用程序将崩溃。

这里是很好的阅读材料:

如果反对票,请告诉我们原因。

1

如果您刚刚发布它,object仍然指向它之前有内存地址。如果您检查它为零(object == nil),它将返回NO。释放它后最好确保它指向nil