0
我無法用圖像列表填充場景。我使用UIViewController而不是一個tableView來顯示我的界面。想象一下Tinder喜歡的應用程序。沒有tableview。要滾動瀏覽圖像,每個圖像都會被滑動到下一個圖像。Swift:由於URLSession.DataTask遞歸調用ViewDidLoad
我在場景中填充圖像的方式是使用URLSession.DataTask在ViewDidLoad中創建一個POST請求。但是我似乎遇到了多線程問題。
原始代碼:
ViewDidLoad(){
queryService.getProduct { productlist, errorMessage in
if !errorMessage.isEmpty { print("Search error: " + errorMessage) }
self.products = productlist
}
// CODE TO initialize View
// MORE CODE
}
QueryService的包含URLSession.DataTask它調用URL,並進行序列化。該方法已正確實施。我面臨的問題是self.products在「代碼初始化視圖」部分後實例化。它們似乎都在平行運行。因此,這裏是我做過什麼補救修復:
快速修復:
var count = 0
ViewDidLoad(){
if count == 0 {
queryService.getProduct { productlist, errorMessage in
if !errorMessage.isEmpty { print("Search error: " + errorMessage) }
self.products = productlist
self.count = 1
self.ViewDidLoad()
}
} else {
// CODE TO initialize View
// MORE CODE
}
}
這工作,但我知道我的速戰速決是不是最好的做法。有關最佳解決方案的任何建議?謝謝。還有一個後續問題:可以像這樣手動調用viewdidload嗎?
,一定不要調用'viewDidLoad'或任何其他生命週期方法自己。 – rmaddy