Aar*_*ron 11 iphone memory-management objective-c
我经常在使用后释放该对象
[myObject release];
Run Code Online (Sandbox Code Playgroud)
但我发现在一些在线教程中,他们在释放对象后分配了一个nil.喜欢
[myObject release];
myObject = nil;
Run Code Online (Sandbox Code Playgroud)
需要吗?
mar*_*ass 29
关于nil
在释放之后将指针设置为是否是必要的,这是一个长期争论,但我认为它是一个好主意.
释放对象后,您持有的指针仍指向同一位置.如果您的发布已将保留计数设置为0,则将取消分配该对象.如果您尝试向解除分配的对象发送消息,则会收到EXC_BAD_ACCESS错误.但是,在设置为指针后向指针发送消息nil
不会出错 - 它不会做任何事情.
争论的另一方面是,如果你要发送一个解除分配的对象,那么了解它并修复你的代码以确保它不会发生是很好的.
两个阵营都有聪明人.
归档时间: |
|
查看次数: |
771 次 |
最近记录: |