Как я могу создать зависимость для функций в быстром запуске один за другим? Другими словами, я хочу, чтобы одна функция подождала, пока другая завершит свою задачу успешно.Зависимость от функций в Swift
var sales : NSMutableArray! = NSMutableArray()
var items : NSMutableArray! = NSMutableArray()
override func viewDidLoad() {
super.viewDidLoad()
Здесь мне нужна помощь, ниже способ доставки не работает должным образом, я получаю «индекс 0 вне границ для пустого массива» ошибки, так как массив не заселен еще я думаю. Также я не уверен, что если это правильный метод для обработки этого ...
/*
dispatch_async(queue, {
dispatch_sync(queue, {
self.downloadItems()
})
dispatch_sync(dispatch_get_main_queue(), {
self.displayItems()
})
})
*/
}
func downloadItems() {
let urlPath = "……………………………"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in
if (error != nil) {
println(error)
} else {
let jsonResult: AnyObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)!
dispatch_async(dispatch_get_main_queue()) {
for var i = 0; i < jsonResult.count; i++ {
self.sales[i] = jsonResult[i]["daily_sales"] as NSString
}
}
}
})
task.resume()
}
func displayItems() {
self.items.addObject(["amount": self.sales[0]])
}
Вы должны попробовать написать код, пост, который с описанием проблем, SO о помощи кода записи, не предоставляя код. – zaph
Посмотрите на очереди отправки с группами - вы можете дождаться их завершения. –
Синхронные функции? Асинхронные функции? – Rob