首页 > 解决方案 > Objective-C 类属性类型未暴露给 Swift

问题描述

我有一个 Swift 项目,它带有一个通过 CocoaPods 链接的 Objective-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 类的属性类型?

标签: objective-cswift

解决方案


我怀疑问题在于您的 Objective-C 泛型声明不包含*.

您可以尝试将您的财产声明更改为

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

您的NSArray实例包含类型为 的对象OAILayerTreeItem,这就是您需要*.

请注意,我无法尝试此操作。


推荐阅读