我们都知道Objective-C++是如何记录在案的.我找不到任何相关内容,但我也发现很难找到合适的明确搜索词.所以,Stackoverflow来救援(我希望)!
我有一个C++类,我在Objective-C(++)类中有一个实例(我启用了项目设置,可以调用构造函数/析构函数).
这一切都正常,直到我尝试通过@synthesized属性公开实例.我把它作为一个assign属性(因为Obj-C保留计数不适用).该属性似乎工作,除非我设置实例,我希望涉及复制构造函数.我实际看到的是创建了一个临时实例(在其上调用了复制构造函数) - 这是所有预期的.但是没有调用ivar实例上的复制构造函数.这些值是"神奇地"设置的.我假设@synthesized代码正在做memcpy最后一步.这对于C structs 来说很好,但对C++没那么有用classes代码的正确性取决于正确调用的复制构造函数和赋值运算符.
有没有人更深入地研究过它,让它工作,或者确认不可能在Obj-C(++)类中将C++对象保存为ivars并且具有由@synthesized属性设置器调用的复制构造函数?
(如果有必要,我可以发布所有这些的示例代码 - 但即使是最小版本也是一个屏幕左右).