我的功能有时需要很长时间才能运行。我想尝试运行它10秒钟,然后如果没有完成就杀掉它。我如何在iPhone上的Objective C中执行此操作?
为数据库中包含大量数据的某些用户创建持久性存储协调器失败,因为对象模型合并需要太长时间。我们已经将数据存储移出数据库,但是如果需要超过设定的时间限制,我想杀死模型合并,并删除数据库文件,以便用户可以继续使用该应用程序。
NSPersistentStoreCoordinator* psc = [[[NSPersistentStoreCoordinator alloc]
initWithManagedObjectModel: [self managedObjectModelForDatabase:dbName]] autorelease];
答案 0 :(得分:1)
你可以在另一个线程中执行合并(不要忘记为这个后台线程创建不同的NSManagedObjectContext)然后让主线程在等待后台迁移线程中的异步完成事件时显示进度消息?
我在我的一个应用程序中使用大量数据执行此操作,以避免iPhone在合并过程中终止我的应用程序。
答案 1 :(得分:0)
您可以使用-performSelector:withObject:afterDelay:
来安排将来发送的邮件。