我正在使用Xcode 7.1,在打开现有应用程序时收到此警告.如果有人展示使用方式会很有帮助-performBlockAndWait:
谢谢
正如蒙迪所说,你不需要锁定你正在做的事情.但是,要解决您关于lock
和unlock
被弃用的一般问题......
你应该使用performBlock
或performBlockAndWait
代替.这些方法类似于上面的方法NSManagedObjectContext
.
因此,不是手动锁定关键区域,而是将该代码放入一个"执行"的块中.
例如,如果你有这个代码......
[persistentStoreCoordinator lock]; [persistentStoreCoordinator doSomeStuff]; [persistentStoreCoordinator unlock];
你会用......替换它
[persistentStoreCoordinator performBlock:^{ [persistentStoreCoordinator doSomeStuff]; }];
请注意,这performBlock
是一个异步操作,它将立即返回,在将来的某个时刻调度代码块以在其他某个线程上执行.
这应该没问题,因为我们应该使用异步模型进行大部分编程.
如果必须具有同步执行,则可以使用替代方法,该方法将在返回调用线程之前完成块的执行.
[persistentStoreCoordinator performBlockAndWait:^{ [persistentStoreCoordinator doSomeStuff]; }];
同样,这些行为与其NSManagedObjectContext
对应物完全相同.