我发现将[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]);// 不工作,可能它现在被销毁了!