Objective c 手动实现@property
当手动实现@property而不是使用@synthesis时,是否必须包含ARC代码 可以这样实施吗:Objective c 手动实现@property,objective-c,properties,automatic-ref-counting,Objective C,Properties,Automatic Ref Counting,当手动实现@property而不是使用@synthesis时,是否必须包含ARC代码 可以这样实施吗: @synthesize var1; - (void)setvar1:(NSObject *)newVar1 { var1 = newVar1; } 或者您必须在ARC下包含保留,释放等吗?您不必(事实上不能)手动保留或释放变量。除了在setVar1:中需要大写V之外,您的实现在ARC下是完全可以接受的。使用ARC时,您不能编写手动使用retain、release等的代码。因此,如果
@synthesize var1;
- (void)setvar1:(NSObject *)newVar1
{
var1 = newVar1;
}
或者您必须在ARC下包含
保留
,释放
等吗?您不必(事实上不能)手动保留
或释放
变量。除了在setVar1:
中需要大写V之外,您的实现在ARC下是完全可以接受的。使用ARC时,您不能编写手动使用retain
、release
等的代码。因此,如果您选择手动实现属性getter和setter,并且启用了ARC,则不必包含额外的内存管理代码。您所称的“ARC代码”(retain
,release
,等等)实际上是手动引用计数,而不是自动计数
如果编译时没有弧,则需要保留
或根据需要复制对象。如果您在ARC下,编译器将为您处理它。具体来说,如果声明了\uu strong
,编译器将保留newVar1