Скажем, у меня есть переменная экземпляра MyObject, которая была выделена и инициализирована. Тогда говорят, что я это сделать:Доступ к переменной экземпляра из фонового потока
[backgroundThread performBlock:^{
//do something with MyObject that might take some time
}];
[self dismissModalViewController]; //this releases all instance variables, right?
Так что же происходит у меня есть NSManagedObjectContext
называется backgroundThread
, что делает некоторую работу на объекте в фоновом режиме. Это немедленно возвращается и выполняет работу в фоновом режиме, а затем вызывается dismissModalViewController
, который освобождает все переменные экземпляра. Итак, что, если модальное представление теперь отклонено, но backgroundThread
все еще должен использовать объект? Это проблема? Каков обходной путь?
И еще одно: этот объект MyObject вставляется в контекстный контекст backgroundThread. Означает ли это, что этот NSManagedObjectContext сохранит объект, даже после отклонения представления?
Я использую ARC.
Если вы заблокировали мьютекс, вам не придется беспокоиться об этом. – CodaFi
Что такое блокировка мьютекса? – Snowman
Блокировка мьютекса гарантирует, что в то время как MyObject обрабатывается в фоновом режиме, ни одна другая нить не может его коснуться, в том числе освободить его. – CodaFi