[問題] 如何寫一個func 等另一個func的結果

作者: icecreamilk (羊駝貓咪幽靈)   2017-03-22 12:07:24
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這樣的呢?
實在困擾小妹很久了嗚嗚
希望有人可以解答
先謝謝各位了
作者: appleway (蘋果愛天空)   2017-03-22 13:16:00
把login manager 的result block 當delegate 想,就是了
作者: cryinglove (毓™)   2017-03-23 00:17:00
作者: a26364177 (偉霖)   2017-03-23 02:58:00
Callback~
作者: MADAOTW (MADAO)   2017-03-25 18:56:00
closure

Links booklink

Contact Us: admin [ a t ] ucptt.com