(iphone)可以为c ++类/ struct定义@property吗?

时间:2011-02-23 10:36:43

标签: iphone c++ objective-c

我正在混合使用c ++和objectc 特别是,我正在向object-c头添加一个c ++类/ struct变量,如果这是合法的?

例如,

@interface MyView : UIView
{
   MyCppClass  cppVariable;
}

@property (nonatomic, assign) MyCppClass cppVariable;
@end

在实现文件中,@ synthesize cppVariable;同样。

1 个答案:

答案 0 :(得分:4)

this official document on Objective-C++中所述,可以在Objective-C类中包含非指针C ++对象。如果您在GCC / clang中使用选项-fobjc-call-cxx-cdtors,则会正确构造和销毁它们。

@sythesiz非指针C ++ @property的情况并不明确,因为缺少文档。行为有时取决于所使用的编译器,如所讨论的那样。在this SO question。 Clang团队正在努力实现正确的事情,但我认为现在还没有。

因此,如果你想@synthesize,请坚持使用指向C ++类的指针。否则,实现自己的setter和getter。

相关问题