enter code here
Я много чего пробую с группой рассылки, но не могу получить стабильный результат.Я использую Alamofire для получения данных с моего сервера.Я написал функцию в классе Helper и использую эту функцию в AppDelegate.swift.
Я не знаю, помещаю ли я группу диспетчеризации при вызове функции, чтобы в AppDelegate, или я помещаю группу диспетчеризации только в функцию в классе помощника.
func alomofireGet(URL: String, onCompletion:@escaping ((JSON) -> Void)) {
// let group = DispatchGroup()
var contentJSON = JSON()
// group.enter()
Alamofire.request(URL, method: .get).responseJSON() { (reponse) in
if reponse.result.isSuccess {
contentJSON = JSON(reponse.result.value!)
} else {
contentJSON = JSON(reponse.result.error!)
}
// group.leave()
}
// group.notify(queue: .main) {
onCompletion(contentJSON)
}
В приложении «Делегат» я пишу функцию, которая вызывает функцию в моем классе.
func connect() {
let group = DispatchGroup()
let _: Bool = KeychainWrapper.standard.removeObject(forKey: "token")
var token = String()
group.enter()
Helper().alomofireGet(URL: "http://192.168.1.19/app_dev.php/login/app") { contenuJSON in
token = contenuJSON["csrfToken"].stringValue
group.leave()
}
group.notify(queue: .main) {
let _: Bool = KeychainWrapper.standard.set(token, forKey: "token")
let t: String? = KeychainWrapper.standard.string(forKey: "token")
print(t!)
}
}
Проблема в том, что переменная "t" пуста.И когда я вызываю keychainWrapper в делегате приложения, цепочка для ключей также пуста.
PS: У меня есть другая задача, я просто уменьшил свой код