作者icecreamilk (羊駝貓咪幽靈)
看板MacDev
標題[問題] 如何寫一個func 等另一個func的結果
時間Wed Mar 22 12:07:24 2017
sorry 不太會敘述這問題...
目前想要實作一個func 像是facebook login api
如下圖
http://imgur.com/a/upijQ
以下直接複製圖片裡的程式碼-
@objc func loginButtonClicked() {
let loginManager = LoginManager()
loginManager.logIn([ .PublicProfile ], viewController: self) { loginResult in
switch loginResult {
case .Failed(let error):
print(error)
case .Cancelled:
print("User cancelled login.")
case .Success(let grantedPermissions, let declinedPermissions, let accessToken):
print("Logged in!")
}
}
在loginManager.logIn這func裡面 return的是loginResult
但其實這個loginResult是在Appdelegate裡面就已經產生的
如下圖
http://imgur.com/a/NC8ZL
目前已經試過DispatchSemaphore 但是會被block住....
請問有什麼方法可以像他login這個func這樣的呢?
實在困擾小妹很久了嗚嗚
希望有人可以解答
先謝謝各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.33.50
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1490155647.A.905.html
推 appleway: 把login manager 的result block 當delegate 想,就是了 03/22 13:16
推 a26364177: Callback~ 03/23 02:58
→ MADAOTW: closure 03/25 18:56