[问题] 如何写一个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