Cocoa Touch框架摘引计数

Cocoa Touch框架引用计数

Cocoa Touch框架提供两种内存管理方式,一种自动内存计数ARC(Automatic Reference Counting ),另一种手动引用技术(manual reference counting)。对于后一种需要程序员自己retain和release,其原则是“责任落实”,谁创建了对象(或保留了以创建的对象),谁就是该对象的拥有方,不再使用时,则要负责释放该所有权。

在手动管理内存时,以下有一些注意点

1 对象加入NSMutableArray实例时,会受到retain消息,数组对象会成为该对象的拥有方,即该对象的retainCount会加1.对象从NSMutableArray实例移出时,会收到release消息,即计数会减1.

        2 在调用UITableView下的  [tableView reloadData] 方法后,作为其dataSource的NSArray实例的retainCount会减1

所以在调用[tableView reloadData] 之前,需要将NSArray的实例retain一下。

       3使用UINavigationController 的 [   pushViewController: VC animated: YES],会使压入栈中的VC的retainCount加1