2016-09-22 8 views
1

これをSwift 3.0に変換しようとすると問題が発生します。非機能型の値を呼び出せません

私が持っている:

public typealias CustomCompletionBlock = (_ image: UIImage?, _ error: Error?) -> Void 
public var completionBlock : CustomCompletionBlock! 

後で私のコードでは、私は例えばcompletionBlockを設定したい:

self.completionBlock(image: nil, error: error) 

をしかし、私はエラーが「非機能型の値を呼び出すことはできません」を取得。私はここで間違って何をしていますか?

答えて

0

はこのようにそれを呼び出すようにしてください:あなたはimageerror変数に対して外部パラメータ名として_を指定している

CustomCompletionBlock署名で
self.completionBlock(nil, error) 
2

public typealias CustomCompletionBlock = (_ image: UIImage?, _ error: Error?) -> Void 

。つまり、CustomCompletionBlockを呼び出す際に、パラメータ名を指定する必要はありません。 imageおよびerror内部パラメータ名です。つまり、クロージャ定義内でのみ使用する必要があります。

self.completionBlock(nil, error) 

だから、同じようにそれを呼び出す必要があります

関連する問題