如果我有NSMutableString
这样的
NSMutableString *foo = [[NSMutableString alloc] init];
如果我把对象弄清楚了foo = nil
,是否会将保留计数降低1,从而有效地释放内存?此时我是否需要从堆中重新分配foo才能使用它?
请阅读基本文档.将变量设置foo
为nil对其先前的内容没有任何影响.记住,foo
它只是一个指向对象的指针; 要使用它,你必须使它指向一个有效的对象.只是为了使它不再指向该对象不再释放该对象.
将nil分配给变量不会影响以前的值.保留计数仅降低release
.
您应该阅读Apple的Cocoa内存管理指南.Cocoa的引用计数系统并不困难,但它是你必须学习的东西,如果你没有正确学习它,你的程序会有很多微妙的错误会让你发疯.