サーバーから (AWS 経由で) 提供された開発者の資格情報をサンプル ID プロバイダーに返す方法を理解するのに苦労しています。
refresh
ExampleIdentityProvider クラスのメソッド内でこれを同期的に行う必要があるようです。AFNetworking を使用してリクエストを作成していますが、これは非同期GET
リクエストです。IdentityProvider の更新メソッドに対してこれを同期的に行うにはどうすればよいですか?
Swift では次のようになります。
class ExampleIdentityProvider: AWSAbstractIdentityProvider {
var newToken: String!
override var token: String {
get {
return newToken
}
set {
newToken = newValue
}
}
override func getIdentityId() -> BFTask! {
if self.identityId != nil {
return BFTask(result: self.identityId)
}else{
return BFTask(result: nil).continueWithBlock({ (task) -> AnyObject! in
if self.identityId == nil {
return self.refresh()
}
return BFTask(result: self.identityId)
})
}
}
override func refresh() -> BFTask! {
return BFTask(result: nil).continueWithBlock({ (task) -> AnyObject! in
let result = AFNETWORKING REQUEST FOR CREDENTIALS TO MY SERVER
self.identityId = result.identityId
self.token = result.token
return BFTask(result: self.identityId)
})
}
}