我々はいくつかのコードを呼び出すと、我々はスウィフトで複数のオプションを持っている複数のパラメータを持つ応答を必要とする:デリゲートを使用するタイミングは、Swiftのinoutまたはcompletionですか?
- 完了ブロック
- 委任
- INOUTは(単に内のすべてのパラメータを置く
- ラッパーオブジェクトをパラメータオブジェクト)
何をいつ使うべきかについての良いガイドラインがあるのだろうか?具体的には、デリゲートの代わりにinoutを使用するのはいつも悪い習慣ですか?
具体的には: 説明に使用できる例: クラスAはクラスBと通信しています。クラスAにはデータのリストとオプションのエラーが必要です。
だから、今、私はinoutsを使用してに傾いています: クラスA:
var error = ServiceError()
let wordSuggestions = B.parseSuggestionResponse(json: result as! NSDictionary, error: &error)
if error.type == .none {
// Success, now use wordSuggestions for something!
} else {
self.handleError(error: error)
}
は、デリゲートを使用して、VS、このアプローチのためのいくつかの欠点はありますか?
[NotificationCenter](https://developer.apple.com/reference/notificationcenter)と[KVOs](https://developer.apple.com/library/content/documentation/General/)を追加することもできます。 Conceptual/DevPedia-CocoaCore/KVO.html)をオプションリストに追加します。 –
彼らはオプションでもありますが、私はそれらを特別なケースとして見ています。通常、NotificationCenterは何かをグローバルにする必要がある場合にのみ、KVOは通常UIに関連するもののためです。 – Warpzit