Ho una classe con metodi statici: questa classe avvolge chiamate alla API Twitterdue classi, richiamata e unità di test
In una seconda classe, ho qualche logica aziendale.
A causa del comportamento asincrono di alcuni metodi nella classe wrapper, ho difficoltà a progettare la comunicazione. Ecco quello che ho fatto:
APIManager.swift
public class APIManager {
class func getPermission(callback :() -> Void) {
let accountStore = ACAccountStore()
let accountType =
ACAccountStore().accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierTwitter)
let callbackRequestAccess = { (granted: Bool, error: NSError!) -> Void in
...
if(granted) {
callback()
}
}
accountStore.requestAccessToAccountsWithType(setAccountType,
options: nil, completion: callbackRequestAccess)
}
}
Welcome.swift
public class Welcome {
public func checkPermission() {
APIManager.getPermission(getTweet)
}
public func getTweet() {
...
}
}
non sono sicuro che questo progetto nel giusto o meno. Non voglio avere un forte legame tra queste classi, ecco perché sto usando un callback.
Si tratta di un design classico? Inoltre, non credo che questo comportamento sarà facile da testare?