【发布时间】:2020-09-21 06:34:40
【问题描述】:
我正在尝试在一个目标 c 项目中使用以下 pods 文件:
https://cocoapods.org/pods/iOSDropDown
我已经修改了 coco 文件以确保所有属性都是公开的并且有 @objc 标签
但是,我尝试在 Objective c 中执行以下 Swift 函数,但我继续收到以下错误消息:
我试图在目标 c 中执行的 Swift 代码
dropDown.optionArray = ["Option 1", "Option 2", "Option 3"]
objc 代码
NSArray * stringArray = @[@"Option 1", @"Option 2", @"Option 3"];
[_dropDown setOptionArray: stringArray];
我继续收到以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[iOSDropDown.DropDown setOptionArray:]: unrecognized selector sent to instance 0x7f8a90048800'
我知道 NSArray 是一个 coco 特定对象,应该在 swift 和 objc 之间传输,但我不确定为什么我无法设置 optionArray 属性而不崩溃。任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试改用
dropDown.setOptionsArray(["Option 1", "Option 2", "Option 3"])? -
感谢您回复 moe,但该语法很快,我在 obj c 中尝试了等效,但我收到相同的错误消息 [_dropDown setOptionArray: @[@"1", @"2", @" 3"]];
-
你的合成方法工作正常吗?如果数组属性不是只读的,您可以尝试从 objc 设置它:
dropDown.optionArray = @[ ... ];
标签: ios objective-c swift cocoa nsarray