关于release的用法
来源:互联网 发布:数据库函数的使用 编辑:程序博客网 时间:2024/05/16 00:36
1.头文件中声明的对象要在- (void) dealloc方法中release掉.
原因:创建这个对象时已经为这个对象分配了空间.
2.release对象不可以通过[NSString stringwithString]创建的对象.但是可以用于NSString *str=@"";
3.传递对象时注意的release 问题:主要有两种情况.self.a= 和a=两种情况.对于前者可使用autorelease ;对于后者在传值之前不能release
4.放到数组array或者字典dictionary中的对象可将release的所有权交给数组,或是字典.
原因:把对象放到数组中会使该对象的retaincount增加1,如无特殊需求可在添加到数组之后,将该对象release 掉或者设置autorelease.
注意:view 的addSubview也是将对象放到数组中,所以可将其release掉把release的权利交由数组.
5.autorelease实在赋值后或者是将第一相应者传递之后调用的,如果设置了autorelease对象在nsautoreleasepool中,则该对象随着[pool release]一起释放.UITableviewCell 可设置为autorelease.例如navigation 栈中popviewController,dismissModleviewController等.
6.UINavigationController执行push时会产生push的viewController的retaincount的增加,在push执行之后又会回复.UIAlertview执行show方法时候,也会产生retaincount增加,所以在[alertview release] 之后还可以相应事件.
7.copy NSString 或者NSArray都继承NSCoping接口.所以在执行copy时会分配另一块空间.
要使普通的对象也执行copy方法,可让该对象的类继承NSCoping接口.然后实现- (id) copywithZone:(nszone *) zone 方法,即可.
- 关于release的用法
- 关于Debug和Release的讨论
- 关于VC下的 Debug和Release
- IOS中关于UIButton release的问题
- 关于autorelease和release的理解
- 关于Debug和Release的区别
- 关于VS的release版本调试
- 关于Debug和Release的区别
- 关于C++Release后的优化感想
- 关于Flash Builder的debug和release
- 关于autorelease和release的理解
- 关于编译debug和release的方式
- self与release用法
- IOS开发中nil和release的用法
- iOS开发中nil和release的用法
- Objective-C中nil与release的区别与用法
- Objective-C中nil与release的区别与用法
- Objective-C中nil与release的区别与用法
- Eclipse快捷键
- 基于Arm(OMAP3530)平台的Linux上编译QT4.6.2
- 在VC的MFC的对话框中建立ClassWizard时,提示Parsing error: Expected "=".Input Line:……
- 基于Arm(OMAP3530)平台的Linux上编译QT4.6.2
- 积分?
- 关于release的用法
- ORACLE 跨数据库访问
- android中一个程序中再次开启另外一个应用程序
- log4net将log实时显示在textbox中(WinForm)
- 配置tomcat
- pl/sql查询数据库时中文字段为乱码
- 信息安全专业可以考哪些证
- Oracle -Win7 有关PL/SQL Sqlplus 无法连接服务器的解决方案
- 使用Microsoft Visual C++来检测和隔离内存泄漏