1
私は上記の関数でディスパッチ非同期は「dispatch_async」のインスタンスに置き換えられているエラー文がCompletion Handler dispatch_asyncがエラーを出していますか?
でエラーに
dispatch_async(dispatch_get_main_queue(), { completionHandler(appCategories) })
を与えている機能
static func fetchFeatureApp(completionHandler:@escaping ([AppCategory1])->()){ let urlString="http://ebmacs.net/ubereats/Api/all_product?id=1" let url = URL(string: urlString)! URLSession.shared.dataTask(with: URLRequest(url: url)){ (data, responce, error) in if error != nil { print(error) return } do { if let jsonResult = try JSONSerialization.jsonObject(with:data!) as? [String:Any] { if let products = jsonResult["products"] as? [[String:String]] { var appCategories = [AppCategory1]() for product in products { let category = AppCategory1(id: product["product_id"] ?? "", name: product["product_name"] ?? "", description: product["product_description"] ?? "", url: product["image_url"] ?? "", price: product["product_price"] ?? "") appCategories.append(category) } print("Abc=") print(appCategories) dispatch_async(dispatch_get_main_queue(), { completionHandler(appCategories) }) } } } catch { print(error) } }.resume() }
を以下に完了ハンドラを持っていますメソッド 'DispatchQueue.async(execute :)' 'dispatch_get_main_queue()'がプロパティに置き換えられました'DispatchQueue.main'
このエラーを修正するにはどうすればよいですか?
私は
AppCategory.fetchFeatureApp { (appcategories) in
self.appcategories = appcategories
self.collectionView?.reloadData()
}
それはエラーにタイプの
価値を与えているが、 'FeaturedViewController' は、この関数を呼び出しています何のメンバーのappcategoriesない "
修正する方法関数呼び出し?
私はパラメータの完了のhandler.Isでその関数を呼び出すには、この正しい方法を、この関数を呼び出すしようとしています... AppCategory.fetchFeatureApp {? (appcategories)in self.appcategories = appcategories self.collectionView?.loadData() } –