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

学海苦作舟,书山勤为径

留下点回忆

导航

<2025年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

公告

Web Counter
Web Counter

留言簿(47)

随笔分类(126)

文章分类

随笔档案(151)

相册

阅读排行榜

评论排行榜

常用链接

统计

积分与排名

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 笨笨 阅读(2343) 评论(2)  编辑 收藏 引用 所属分类: iOS

评论

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

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

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

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


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理