Не хочу NSOperation, потому что я не хочу иметь дело с потоками
Честно говоря, я думаю, что это ваш самый простой вариант.Единственный другой способ - выполнить асинхронный ввод-вывод и использовать цикл выполнения.
При использовании NSOperation вам потребуются два вида операций, например, UploadOperation
и NotifyOperation
: один для загрузки объекта и одинчтобы отправить уведомление главному потоку, когда все будет сделано.
Затем вы перебираете объекты, помещая их все в NSOperationQueue
в UploadOperation
, каждый из которых зависит от предыдущего (addDependency:
).Наконец, вы бы поставили NotifyOperation
в очередь в зависимости от последнего UploadOperation
.
NotifyOperation
переопределяет main
следующим образом
-(void) main
{
[someObjectEgViewController performSelectorOnMainThread: @selector(finishedUpload)
withObject: nil
waitUntilDone: NO];
}