我需要将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