objective-c - 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-C 泛型声明不包含*
.
您可以尝试将您的财产声明更改为
@property(nonatomic) NSArray<OAILayerTreeItem *> *children;
您的NSArray
实例包含类型为 的对象OAILayerTreeItem
,这就是您需要*
.
请注意,我无法尝试此操作。
推荐阅读
- video-streaming - 通过 RTSP 更改视频上的时间位置
- google-sheets - 搜索一个单元格是否包含不同类型的字符串,并根据该字符串输出一个字符串
- neo4j - 在 neo4j 中,如何将节点组合成组并在这些组之间建立关系?
- list - 如何在 kotlin 中编辑列表元素或添加到第二个列表?
- python - DRF 序列化程序中的源字段,具有相同模型的多个外键
- laravel - 我应该把sweetalert的代码放在哪里确认删除?
- javascript - MxGraph - Angularjs 1 - 集成
- arduino - HX711 和称重传感器,抛出大的负值
- c# - 确定哪个网格页面将具有特定记录以将其显示在屏幕上
- bitcoin - 加密货币版本字节列表(地址前缀)