クロージャを使いReturnを使わないメリットとは
SwiftでTwitterクライアントを作ろうとしています。
Qiitaですでに作ってらっしゃる方がいらしたので、参考にしようと思ったのですが
Accountを取得する際や、TimeLineを取得する際、頑なにreturnは使わず、クロージャを使い、CallBackでAccountや、TimeLineを返しています。
実際のソースは下記のようなものです。
swift
1func getAccounts(callback: @escaping ([ACAccount]) -> Void) { 2 let accountType: ACAccountType = accountStore.accountType(withAccountTypeIdentifier: ACAccountTypeIdentifierTwitter) 3 accountStore.requestAccessToAccounts(with: accountType, options: nil) { (granted: Bool, error: Error?) -> Void in 4 guard error == nil else { 5 print("error! \(error)") 6 return 7 } 8 guard granted else { 9 print("error! Twitterアカウントの利用が許可されていません") 10 return 11 } 12 13 let accounts = self.accountStore.accounts(with: accountType) as! [ACAccount] 14 guard accounts.count != 0 else { 15 print("error! 設定画面からアカウントを設定してください") 16 return 17 } 18 print("アカウント取得完了") 19 callback(accounts) 20 } 21}
このような場合ですと、処理が追いづらく、可読性が低いのではないか?と疑問に思ったのですが、クロージャを使う理由はどう言ったものがあるのでしょう。
Swiftのクロージャしかわからないのですが、一応、値のキャプチャなどは理解しているつもりです。
ちなみに、参考にさせていただいている記事はこちらです。
こちらの記事を貶めようと思っての投稿ではございませんので、何卒、ご了承ください
http://qiita.com/keisei_1092/items/32a96dbdb6bc394b0e8e#gettimeline
以上、ご回答のほど、よろしくおお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/18 23:31