在Objective-C中,应该将包装属性设置为弱吗?通过包装器属性,我的意思是该属性是另一个属性的包装器。
e.g。
- (Prop *)prop {
return self.obj.prop; //wrapper method for another property
}
@property (nonatomic, readonly, weak) Prop *prop; // weak or strong?
答案 0 :(得分:2)
"正确"在这种情况下是一个约定和偏好的问题,因为Objective-C属性确实支持这种模式。访问属性会调用生成,合成或手动编码的方法。
我不会忘记它是否正确"或不。
由于您的属性只返回不同属性的值,因此您不需要指定强或弱,因为它们毫无意义。
在公共标题中:
# myclass.h
@interface MyClass
@property (nonatomic, readonly) OtherClass *someProperty;
@end
在实施中:
# myclass.m
@implementation MyClass
- (OtherClass *)someProperty
{
return self.someObject.otherProperty;
}
答案 1 :(得分:0)
使用房产不一定是最好的方式。它不应该是弱或强,因为它永远不会被设置。您永远不会创建一个readwrite对应项并生成实例变量/访问器方法。
因此,最好将此表示为头文件中的简单方法。它作为所提供界面的描述更准确。