Мне нужно передать 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