Это переменная экземпляра в моем классе
var restaurant = String;
override func viewDidLoad() {
super.viewDidLoad()
self.pool = AWSCognitoIdentityUserPool(forKey: AWSCognitoUserPoolsSignInProviderKey)
if (self.user == nil) {
self.user = self.pool?.currentUser()
}
self.title = self.user?.username
// fills the list with a certain data set
//self.refresh()
Это мой блок завершения
grabData {
for values in self.restaurants{
print(values)
}
}
}
Это функция, выполняющая вызов API
func grabData(completion : @escaping() -> ()){
let databaseMap = AWSDynamoDBObjectMapper.default()
let expression = AWSDynamoDBScanExpression()
databaseMap.scan(Restaraunt.self, expression: expression,completionHandler:{(response:AWSDynamoDBPaginatedOutput?,error:Error?)-> Void in
// testing the response
if(response != nil){
print("got a reponse")
if(response?.items.count == 0)
{
print("did not get a response")
}else{
for item in (response?.items)!{
let data: Restaraunt = item as! Restaraunt;
let name: String = data._name as! String;
self.restaurants.append(name)
}
}
}
})
completion()
}
Кажется, что функция не обновляет переменную экземпляра, я знаю, что я получаю правильные данные после того, как я установил некоторые точки останова.(Когда я устанавливаю точку останова в цикле for, переменная экземпляра restaurant показывает, что она пуста).