gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:34 26 4
gpt4 key购买 nike

我正在混合使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com