Мне нужно настроить некоторые начальные данные, когда начнется мое приложение. У меня есть этот метод с именем loadData()
, который делает несколько вызовов внутри него, требующих подключения к Интернету. Мой код выглядит примерно так:Уведомлять, какой вызов был сделан без подключения к достижимости
func setup() {
if reachability.isReachable() {
// If there is connection, we setup the initial data
loadData()
} else {
//If there is no connection, wait for a notification
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: ReachabilityChangedNotification, object: nil)
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
}
}
func loadData() {
loadA()
loadB()
loadC()
..
loadZ()
}
func reachabilityChanged(note: NSNotification) {
if reachability!.isReachable() {
loadData()
reachability!.stopNotifier()
}
}
Это позволяет мне обрабатывать случай, когда нет никакой связи перед началом loadData()
. Однако, если связь потеряна, например, во время loadC()
, тогда я не смогу добавить уведомление, чтобы позже загрузить оставшиеся данные. Как я могу это достичь?
как вы к этому хотите достичь? как насчет добавления всех ваших элементов в очередь, чтобы вы могли приостановить его и добавить зависимости между ними? – Wain
@ Что-то вроде этого кажется правильным, как бы я это сделал? – Matias
Посмотрите на nsoperation talk из последнего wwdc – Wain