我使用 Xcode 将一些 Swift 1.2 代码转换为 Swift 2.0。 转换后的类定义了这两个属性:
public var onSubmit: ((value: AnyObject...) -> Void)!
public var onCancel: (() -> Void)!
我正在 Objective-C 中使用此类的对象。但是,我无法访问 onSubmit 属性。我收到错误“在‘BMInputBox *’类型的对象上找不到属性‘onSubmit’”
不能这样做:
anInputBox.onSubmit = ^(NSArray *values) {
NSLog(@"%@", values);
};
但是,奇怪的是我可以访问 onCancel
可以这样做:
anInputBox.onCancel = nil;
知道这里可能存在什么问题或如何解决这个问题吗?
我已导入 "MyProject-Swift.h"
header 。
header 也没有定义 onSubmit 属性。虽然它确实有一个用于 onCancel 的方法:
@property (nonatomic, copy) void (^ __null_unspecified onCancel)(void);
在转换为 Swift 2.0 之前,代码运行良好
最佳答案
定义你的 onSubmit 闭包以在 swift 中接收数组参数
public var onSubmit: ((value: [AnyObject]) -> Void)!
关于ios - 将现有的 Swift 1.2 代码转换为 2.0 后,Xcode 无法识别属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806759/