0

私が正しく理解したように、関数を使用できます

func saveImage(imageType:imageType, thumb: UIImage, completion: CompletionHandler)

このような:

imageSaver.saveImage(someType, thumb:image) { in
...
}

しかし、実際にはObjective-Cのように、ブロックはパラメーターであり、次のように使用する必要があると思います:

imageSaver.saveImage(someType, thumb:image, { in
...
})

また、Objective-C コーダーとして興味深いのは、関数に引数を渡すことです。

したがって、次のように savaImage 関数にいくつかのパラメータを追加したい場合:

func saveImage(someInt:UInt, imageType:imageType, thumb: UIImage, completion: CompletionHandler)

名前を指定して呼び出す必要がありますimageType

imageSaver.saveImage(10, imageType:someType, thumb:image) { in
...
}

Swiftでは、関数の定義をスキップするようなものがあると思います

Objective-C の例:

- (void)saveImage:(UIImage *)image withParams:(NSDictionary *)params

そのwithParamsため、私が正しく理解しているように、関数の開始時にスキップされることがありますが、これは私には明らかではありません)

4

1 に答える 1

2

はい、それはクロージャーと関数を区別する目的の一部です。関数の外側でブロックを定義するのではなく、読みやすさを向上させるための構文糖衣です。

これを読むことをお勧めします: Closure Documentation

于 2016-04-18T16:20:24.813 に答える