2 for 2012 for_2012 于 2013.08.27 10:34 提问

使用 ARC 中copy的困惑

在使用ARC时有一个NSString属性,需要@property(nonatomic, copy)。但是当我将我的工程转成ARC后,在初始化方法中依旧存在:

_someString = [someStringParameter copy]

这是bug吗?还是在ARC中还是需要指出copy。需不需要这样:

self.someString = someStringParameter

请明白人指点,谢谢

1个回答

abcdeFGh_xyz
abcdeFGh_xyz   2013.08.27 14:27
已采纳

首先,这不是bug

其次,还是需要明确说明copy的

你通过copy分配实体变量,在ARC中是允许的。实现方法:

 _someString = someStringParamenter;

可以让ARC自动保留(不是copy),出现的结果:

 _someString = [someStringParameter retain];

这是因为在ARC变量下默认会指示__strong 标示符。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!