我正在混合使用 c++ 和 objectc。
特别是,我在 object-c header 中添加了一个 c++ 类/结构变量,这是否合法?
例如,
@interface MyView : UIView
{
MyCppClass cppVariable;
}
@property (nonatomic, assign) MyCppClass cppVariable;
@end
在实现文件中,@synthesize cppVariable;
最佳答案
如 this official document on Objective-C++ 中所述,您可以在 Objective-C 类中包含非指针 C++ 对象。如果您在 GCC/clang 中使用选项 -fobjc-call-cxx-cdtors
,它们将被正确构造和破坏。
@sythesiz
ing 非指针 C++ @property
的情况不是很清楚,因为缺少文档。行为有时取决于所使用的编译器,如所讨论的那样。在 this SO question . Clang 团队正在尝试实现正确的方法,但我认为目前尚不可用。
因此,如果您想要@synthesize
,请坚持使用指向 C++ 类的指针。否则,实现您自己的 setter 和 getter。
关于iphone - (iphone) 可以为 C++ 类/结构定义 @property 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089723/