Objective- C тип свойства класса, не доступный для Swift - PullRequest
0 голосов
/ 10 июля 2020

У меня есть Swift Project с библиотекой Objective- C, скомпонованной через CocoaPods. Работает нормально, все методы могу вызвать et c. Также мой Bridging-Header существует и работает.

Но у меня проблема с некоторыми свойствами моих классов Objective- C.

Вот мой класс:

#import <Foundation/Foundation.h>
#import "OAIObject.h"

#import "OAILayerTreeGroupAllOf.h"
#import "OAILayerTreeItem.h"
@protocol OAILayerTreeGroupAllOf;
@class OAILayerTreeGroupAllOf;
@protocol OAILayerTreeItem;
@class OAILayerTreeItem;



@protocol OAILayerTreeGroup
@end

@interface OAILayerTreeGroup : OAILayerTreeItem


@property(nonatomic) NSArray<OAILayerTreeItem>* children;

@end

Я могу создать этот объект из кода Swift. Но если я пытаюсь получить доступ к дочерним элементам, я получаю тип «Любой», поэтому я не могу получить доступ к дочерним свойствам.

введите описание изображения здесь

Есть ли способ получить доступ к типу свойства моего класса Objective- C?

1 Ответ

0 голосов
/ 10 июля 2020

Я подозреваю, что проблема в том, что ваша декларация дженериков Objective- C не содержит *.

Можете ли вы попробовать изменить декларацию своего свойства на

@property(nonatomic) NSArray<OAILayerTreeItem *> *children;

Your Экземпляр NSArray содержит объекты типа OAILayerTreeItem, поэтому вам нужен *.

Обратите внимание, что мне не удалось попробовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...