ios - 将现有的 Swift 1.2 代码转换为 2.0 后,Xcode 无法识别属性

标签 ios objective-c xcode swift2

我使用 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/

相关文章:

ios - 在ios中添加一个控件到新的联系人屏幕

ios - Objective-C 对象文字的隐式 bool 转换总是计算为真 ios

c++ - 在哪里可以找到高效的 R-Tree 实现?

ios - 通过 OS X 的 Apple 通知中心服务

ios - 使用层动画后 View 动画突然消失

ios - 如何在不使用pushviewcontroller的情况下制作 "pushviewcontroller"动画?

objective-c - [NSData writeToFile : atomically] throw an exception when error happens?]

javascript - 在 Xcode UIAutomation 和 Instruments 中使用 Javascript 验证按钮对象是否存在

iphone - 如何在 XCode 4 中禁用某些文件类型的索引/搜索?

ios - 使用 dispatch_sync 作为互斥锁