当前位置:  开发笔记 > IOS > 正文

不推荐使用'lock':首先在iOS 8.0中弃用 - 使用-performBlockAndWait:代替 - iOS coredata警告

如何解决《不推荐使用'lock':首先在iOS8.0中弃用-使用-performBlockAndWait:代替-iOScoredata警告》经验,为你挑选了1个好方法。

我正在使用Xcode 7.1,在打开现有应用程序时收到此警告.如果有人展示使用方式会很有帮助-performBlockAndWait:

在此输入图像描述

谢谢



1> Jody Hagins..:

正如蒙迪所说,你不需要锁定你正在做的事情.但是,要解决您关于lockunlock被弃用的一般问题......

你应该使用performBlockperformBlockAndWait代替.这些方法类似于上面的方法NSManagedObjectContext.

因此,不是手动锁定关键区域,而是将该代码放入一个"执行"的块中.

例如,如果你有这个代码......

[persistentStoreCoordinator lock];
[persistentStoreCoordinator doSomeStuff];
[persistentStoreCoordinator unlock];

你会用......替换它

[persistentStoreCoordinator performBlock:^{
    [persistentStoreCoordinator doSomeStuff];
}];

请注意,这performBlock是一个异步操作,它将立即返回,在将来的某个时刻调度代码块以在其他某个线程上执行.

这应该没问题,因为我们应该使用异步模型进行大部分编程.

如果必须具有同步执行,则可以使用替代方法,该方法将在返回调用线程之前完成块的执行.

[persistentStoreCoordinator performBlockAndWait:^{
    [persistentStoreCoordinator doSomeStuff];
}];

同样,这些行为与其NSManagedObjectContext对应物完全相同.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有