2017-01-05 6 views
-1

Так что у меня возникла проблема с вызовом функции закрытия.Как получить закрытие для выполнения propely

private var formatedArticles = [article]() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let unformatedData = JsonDataFetcher() 

    unformatedData.getFromJSON() { articles in 
     self.formatedArticles = unformatedData.addArticles(array: articles) 
     print(self.formatedArticles[0]) 
    } 
    print(self.formatedArticles[0]) 
} 

Так в основном, когда это запустить приложение аварию на последнее заявление для печати, так как код внутри моего закрытия не был выполнен еще. Когда эта печать удалена, печать внутри закрытия выполняется ... как мне заставить закрытие запускать, когда я хочу? потому что проблема в том, что я хочу использовать свой форматированный массив статей для других вещей, но я продолжаю получать индекс за пределами

+0

У вас нет. Вы делаете следующий шаг, что бы это ни было, _inside_ закрытие. – matt

ответ

0

Это не так работает асинхронный код. Следующий шаг должен быть сделан внутри закрытие. Итак, вот так:

unformatedData.getFromJSON() { articles in 
    self.formatedArticles = unformatedData.addArticles(array: articles) 
    print(self.formatedArticles[0]) 
    // use self.formatedArticles _here_ 
} 
// do _nothing_ here 

 Смежные вопросы

  • Нет связанных вопросов^_^