相关疑难解决方法(0)

复制构造函数未在Objective C++代码中由Synthesis属性setter调用

我们都知道Objective-C++是如何记录在案的.我找不到任何相关内容,但我也发现很难找到合适的明确搜索词.所以,Stackoverflow来救援(我希望)!

我有一个C++类,我在Objective-C(++)类中有一个实例(我启用了项目设置,可以调用构造函数/析构函数).

这一切都正常,直到我尝试通过@synthesized属性公开实例.我把它作为一个assign属性(因为Obj-C保留计数不适用).该属性似乎工作,除非我设置实例,我希望涉及复制构造函数.我实际看到的是创建了一个临时实例(在上调用了复制构造函数) - 这是所有预期的.但是没有调用ivar实例上的复制构造函数.这些值是"神奇地"设置的.我假设@synthesized代码正在做memcpy最后一步.这对于C structs 来说很好,但对C++没那么有用classes代码的正确性取决于正确调用的复制构造函数和赋值运算符.

有没有人更深入地研究过它,让它工作,或者确认不可能在Obj-C(++)类中将C++对象保存为ivars并且具有由@synthesized属性设置器调用的复制构造函数?

(如果有必要,我可以发布所有这些的示例代码 - 但即使是最小版本也是一个屏幕左右).

c++ objective-c objective-c++

5
推荐指数
2
解决办法
1285
查看次数

标签 统计

c++ ×1

objective-c ×1

objective-c++ ×1