У меня есть фон NSInvocationOperation создание и сохранение NSArray в NSManagedObject подкласс.
Я знаю, что сохранение должно происходить в главном потоке,поэтому я использую executeSelectorOnMainThread для сохранения в операции.
Когда пользователь нажимает кнопку «Домой» на iPhone 3G, приложение закрывается.В applicationDidEnterBackground Я делаю [очередь waitUntilAllOperationsAreFinished] , так что NSInvocationOperation успевает завершиться.
Проблема заключается в том, что он ожидает только «фоновую часть»операция - приложение закрывается, прежде чем executeSelectorOnMainThread часть операции называется .Это означает, что мой NSManagedObject не сохраняется.
Я пытался сохранить объект в потоке операции - приложение корректно закрывается и изменения сохраняются.Но я думаю, что это не хорошо, так как NSManagedObject не является потокобезопасным.Или это нормально?
Похоже на уловку 22. Я должен что-то упустить - есть какой-нибудь элегантный способ, как это решить?