免费桥接到CFArray时如何保留NSArray的类型

时间:2019-07-11 09:07:27

标签: c++ objective-c

我需要将NSArray<SomeInterface *> *传递给C ++函数(.mm代码)。该函数位于可从C ++代码访问的类中,因此签名不能具有Obj-C对象参数。

因此,我使用免费电话桥将其转换为CFArrayRef。但是,NSArray的类型(在这种情况下为SomeInterface *)会丢失。

因此,在.mm代码中,我被迫将CFArray中的每个元素动态投射回SomeInterface *,这是我试图避免的。在这种情况下,有没有办法确保编译时检查?

NSArray<MyObjCInterface *> *nsArray;
CFArrayRef cfArray = (__bridge CFArrayRef)nsArray; // Type MyObjCInterface* is lost

0 个答案:

没有答案