Итак, я знаю, что NSManagedObjects не являются потокобезопасными, а managedObjectID - и нам нужен отдельный managedObjectContext для каждого потока.Но недавно у меня возникла проблема, когда я выполнял некоторые основные изменения данных в фоновом режиме (для этого у меня был отдельный поток runloop) и executeSelectorOnThread: метод иногда просто не вызывался в этом потоке runloop.Оказалось, что причина была в том, что я выполнял
[someObject.managedObjectContext save:&error]
в этом потоке runloop, а "someObject" был создан в главном потоке.Но это только "виснет" поток runloop время от времени.Поэтому вопрос в том, что действительно происходит, если вы пытаетесь сохранить контекст в другом потоке.Я просто ищу более глубокое понимание, спасибо.