Dict.CN 在线词典, 英语学习, 在线翻译

学海苦作舟,书山勤为径

留下点回忆

常用链接

统计

积分与排名

Denoise

English study

Web技术

数据压缩

一些连接

最新评论

成员set方法写法的细微差别(Object C)

大家都知道Object使用属性关键字来定义默认的set和get方法;但如果自己动手写个set方法,却不像C++,Java其他语言一样简单。归根于其内存管理的特点。
请看这个代码的区别:
-(void)setName:(NSStirng *)name
{
   [_name release];
   _name = [name retain];
}

另外一个写法是:

-(void)setName:(NSStirng *)name
{
   [name retain];
   [_name release];
   _name = name ;
}

看上去一样,可是第一种写法在一种情况下会导致程序崩溃。

posted on 2012-12-06 14:46 笨笨 阅读(2271) 评论(2)  编辑 收藏 引用 所属分类: iOS

评论

# re: 成员set方法写法的细微差别(Object C) 2012-12-06 18:09 罗朝辉

C++ 也是一样的,自己给自己赋值时要特别小心。
  回复  更多评论   

# re: 成员set方法写法的细微差别(Object C) 2013-03-24 18:39 Khan

第一种代码在何种情况下会崩溃, 望赐教...  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理