Objective c 将属性用于合成属性 我有一个目标C类 a ,它拥有C++类 b>强>具有速度属性。< /p>
可以用吗Objective c 将属性用于合成属性 我有一个目标C类 a ,它拥有C++类 b>强>具有速度属性。< /p>,objective-c,properties,attributes,Objective C,Properties,Attributes,可以用吗 @属性(非原子)浮动速度 在类A中,即使该类没有速度属性。当我实现 速度函数我将询问B并返回该值,因此它是类A的一种隐式属性 我想这是可行的,所以我的问题是这是否是一个好的做法。绝对好。假设您已经正确地实现了getter和setter,那么就不需要具有属性的类具有成员变量 尽管您可能会遇到KVO问题-此属性不符合KVO。这几乎肯定不是问题:)我认为这种方法没有任何问题。如果你确保C++头部只包含在目标C类的实现文件中,那么你可以呈现一个纯目标C接口,我认为它更重要。该属性是值类型,因此
@属性(非原子)浮动速度代码>
在类A中,即使该类没有速度属性。当我实现
速度函数我将询问B并返回该值,因此它是类A的一种隐式属性
我想这是可行的,所以我的问题是这是否是一个好的做法。绝对好。假设您已经正确地实现了getter和setter,那么就不需要具有属性的类具有成员变量
尽管您可能会遇到KVO问题-此属性不符合KVO。这几乎肯定不是问题:)我认为这种方法没有任何问题。如果你确保C++头部只包含在目标C类的实现文件中,那么你可以呈现一个纯目标C接口,我认为它更重要。该属性是值类型,因此在访问该属性时会复制其值。以这种方式来看,当访问属性时,目标C类的任何实现都不会逃逸。您可以在将来的任何阶段自由更改属性实现,而无需更改API的任何客户端
属性应标记为assign,以指定其值语义
@property(nonatomic, assign) float velocity;