假设我有一个实例变量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