2015-09-27 58 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

相關問題