iphone - (iphone) 可以为 C++ 类/结构定义 @property 吗?

标签 iphone c++ objective-c

我正在混合使用 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,它们将被正确构造和破坏。

@sythesizing 非指针 C++ @property 的情况不是很清楚,因为缺少文档。行为有时取决于所使用的编译器,如所讨论的那样。在 this SO question . Clang 团队正在尝试实现正确的方法,但我认为目前尚不可用。

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

关于iphone - (iphone) 可以为 C++ 类/结构定义 @property 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089723/

相关文章:

iPhone :UITableView CellAccessory Checkmark

iphone - Objective c- 是否可以在不使用 GPU 的情况下制作动画?

c++ - 如何将 CString 转换为整数和 float ?

java - 通过AsyncSocket向objective-c中的java服务器发送消息

iphone - phonegap 中#import "PhoneGapDelegate.h"错误消息?

iphone - 如何在 Objective-C 中制作一个向上计数的计时器?

c++ - 打包结构成员的传递地址

c++ - c vs c++ on solaris 9 平台问题

ios - Objective-c:将 NSArray 全部小写

objective-c - 音频单元未声明的标识符