我发现将[object_name retain]
对象引用计数增加 1 并将[object_name release]
对象引用计数减少 1。[pool drain]
将释放应用于它引用的所有对象。
现在我很困惑。当一个对象没有引用时会发生什么?
release
并且drain
只是减少引用计数,所以内存实际上是在零引用计数时释放的,还是我仍然有一个引用计数为零的对象?
我还发现如果在这里
[pool drain]
// 使我的 Object str3 引用计数为零
NSLog(@"%li",[str3 length]);
// 它有效,对象可能还没有被销毁!
//这里的其他代码
但
[pool drain]
//这里的其他代码
NSLog(@"%li",[str3 length]);
// 不工作,可能它现在被销毁了!