Как сохранить тип NSArray при бесплатном мостовом соединении с CFArray - PullRequest
0 голосов
/ 11 июля 2019

Мне нужно передать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...