Is It Necessary to Set Pointers to nil in Objective-C After release?

前端 未结 3 1401
后悔当初
后悔当初 2020-12-09 09:40

Is there anything wrong with doing something like

NSString * string = [ [ NSString alloc ] init ];
...
[

相关标签:
3条回答
  • 2020-12-09 09:47

    Objective-C is really the same as C with a fancy preprocessor.

    Setting a pointer to nil in Objective-C has no effect on what was once pointed to by that pointer.

    0 讨论(0)
  • 2020-12-09 10:04

    Setting an instance variable to nil is more useful in a multi-threaded application than a single-threaded one, since with multiple threads you can't always guarantee that an instance variable will only be read before it's released.

    I generally don't bother in single-threaded applications, unless there's some other compelling reason.

    0 讨论(0)
  • 2020-12-09 10:11

    Not necessary, but good practice. If you were to inadvertently reference it after release, bad things could happen, but in Objective C there isn't any harm in referencing a nil.

    0 讨论(0)
提交回复
热议问题