当我们将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 ?
答案 0 :(得分:2)
每当使用nil
分配任何局部变量时,该变量将其指向内存更改为0x0000000。这样,之前地址中显示的值将无法解释。
而且,Autoreleasepool
的功能是释放当前正在运行的程序或项目或特定环境的未引用地址。因此,先前指出的值由Autoreleasepool
释放。