我正在编写我的第一个 iOS 应用程序。它包括通过 OAuth2Client 的 API 调用。
问题是在调用 AdvAPI getUser 函数时。通过 NXOAuth2Request 发出 GET 请求,该请求处理 responseHandler 中的响应数据,并将变量结果设置为 NSDictionary。但是,在 XOAuth2Request 函数之外无法访问结果。如何获取结果并从 getUser 返回?
谢谢!
import Foundation
class AdvAPI {
var store : NXOAuth2AccountStore
var account : NXOAuth2Account?
init(){
self.store = NXOAuth2AccountStore.sharedStore() as NXOAuth2AccountStore
self.store.setClientID(
"test",
secret: "test",
authorizationURL: NSURL.URLWithString("http://localhost:3000/oauth/authorize"),
tokenURL: NSURL.URLWithString("http://localhost:3000/oauth/token"),
redirectURL: NSURL.URLWithString("http://localhost:3000/oauth/connect"),
forAccountType: "AdventureApp"
)
self.account = self.store.accountsWithAccountType("AdventureApp")[0]
}
func getUser(parameters : NSDictionary=[String: AnyObject]()) -> NSDictionary {
NXOAuth2Request.performMethod("GET",
onResource: NSURL.URLWithString("http://localhost:3000/api/v1/me"),
usingParameters: parameters,
withAccount: self.account,
sendProgressHandler: nil,
responseHandler: {(response: NSURLResponse?, responseData: NSData?, error: NSError?) in
var jsonError: NSError
var result = NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
}
)
return result
}
}