Не зная больше о WebServices
, трудно понять.
Я предполагаю, что WebServices().get(url)
работает асинхронно в другом потоке, поэтому замыкание вызывается, когда запрос API возвращает данные, и поэтому печать работает.
Когда вы выполняете код в viewDidLoad
, он запускается в главном потоке. Сразу после вызова getMovioesDetail
, print(movieDetail?.backdrop_path)
выполняется, и, скорее всего, movieDetail
по-прежнему nil
, поскольку WebService
еще не завершен.
Для определенного изменения:
print(movieDetail?.backdrop_path)
с этим:
print(movieDetail?.backdrop_path ?? "Movie detail not available yet")
Если веб-служба работает очень быстро, вы увидите путь, напечатанный два раза, если нет, то сначала Детали фильма пока недоступны изатем путь.