自动释放和赋值为nil

3
当我们将一个自动释放的对象赋值为nil时,内存管理会如何表现?它会立即被释放还是会在自动释放池中被释放?
例如:
NSString *myString = [NSString stringWithFormat@"%@","MY_STRING"]; //Autorelease object

myString = nil;//What will happen here ? Does it get deallocated ? Or Will it get deallocated with the autolrelease pool ?  

你使用的是ARC还是MRC? - rmaddy
1
如果您能为两个环境提供解释,那就太好了... - rustylepord
1个回答

2
无论何时,当任何局部变量被赋值为nil时,那个变量会将其指向的内存更改为0x0000000。这样,之前地址上呈现的值就会失去指向。
Autoreleasepool的作用是释放当前运行的程序、项目或特定环境中未引用地址的内存。因此,先前指向的值将被Autoreleasepool释放。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接