Objective c 在核心数据中10秒后终止任务

Objective c 在核心数据中10秒后终止任务,objective-c,cocoa-touch,core-data,ios,Objective C,Cocoa Touch,Core Data,Ios,我有一个函数有时运行时间太长。我想试着运行它10秒钟,如果没有完成,就把它杀死。如何在iPhone上的Objective C中实现这一点 对于一些数据库中有大量数据的用户来说,创建持久存储协调器是失败的,因为对象模型合并耗时太长。我们已经将数据存储移出了数据库,但如果需要超过设定的时间限制,我想终止模型合并,并删除数据库文件,以便用户可以继续使用该应用程序 NSPersistentStoreCoordinator* psc = [[[NSPersistentStoreCoordinator al

我有一个函数有时运行时间太长。我想试着运行它10秒钟,如果没有完成,就把它杀死。如何在iPhone上的Objective C中实现这一点

对于一些数据库中有大量数据的用户来说,创建持久存储协调器是失败的,因为对象模型合并耗时太长。我们已经将数据存储移出了数据库,但如果需要超过设定的时间限制,我想终止模型合并,并删除数据库文件,以便用户可以继续使用该应用程序

NSPersistentStoreCoordinator* psc = [[[NSPersistentStoreCoordinator alloc] 
                                        initWithManagedObjectModel: [self managedObjectModelForDatabase:dbName]] autorelease];

您可以使用
-performSelector:withObject:afterDelay:
计划将来发送的消息。

您可以在不同的线程中执行合并吗(不要忘记为此后台线程创建不同的NSManagedObjectContext)然后让主线程在等待来自后台迁移线程的异步完成事件时显示进度消息


为了避免iPhone在合并过程中杀死我的应用程序,我在一个有大量数据的应用程序中这样做

我明白你的意思,但可能需要详细说明。我知道。但是我需要暂停的功能是库代码,所以我不能在它中间添加一个标志检查或一些东西。我不知道如何中断线程。我想我们需要更多信息。你到底想取消什么?仅供参考,我编辑了标题和标签,以更好地反映你想要的信息。