2015-09-27 75 views
0

我使用Xcode将Swift 1.2代码转换为Swift 2.0。 转换后的类有这两个属性来定义:将现有的Swift 1.2代码转换为2.0后,Xcode无法识别属性

public var onSubmit: ((value: AnyObject...) -> Void)! 
public var onCancel: (() -> Void)! 

我使用这个类在Objective-C的对象。但是,我无法访问onSubmit属性。我得到一个错误

不能做到这一点 “物权 '的onsubmit' 上输入 '* BMInputBox' 的对象未找到”:

anInputBox.onSubmit = ^(NSArray *values) { 
    NSLog(@"%@", values); 
}; 

但是,奇怪的是我可以访问onCancel

可以向该:

anInputBox.onCancel = nil; 

任何想法,可以在这里或如何解决这个问题?

我输入了"MyProject-Swift.h"标题。 标题没有定义onSubmit属性。转换为雨燕2.0

回答

1

定义你的onsubmit关闭接收在迅速

public var onSubmit: ((value: [AnyObject]) -> Void)! 
+0

数组参数这个工作之前

@property (nonatomic, copy) void (^ __null_unspecified onCancel)(void); 

的代码工作正常:虽然它确实有一个onCancel。谢谢。你能否提供一个解释。我是Swift新手。为什么这个工作之前,而不是现在? –

+0

@Rage可能在1.2 swift variadic参数中被隐式转换为数组。实际上varariadic paramter函数在swift和objc之间是不可互换的 – dopcn