2009-12-13 21 views
1

我的应用程序当前使用CoreData作为后端存储到存储在~/Library/Application Support/MYAPP/MyDataFile.sqlite中的单个SQL数据文件。我知道这是一种不寻常的情况,但是什么是“锁定”这个文件的最好方法,以便如果用户决定(为了任何愚蠢的原因)运行我的应用程序的第二个副本,Core Data不会被吓倒?我是否应该使用旧的学校,比如在某处写锁文件并检查它,还是有更好的Cocoa方法?锁定单个NSPersistentDocument

+0

你是应用命令行应用吗?除非是这样,否则你可能不必担心。 OS X通常不允许启动一个.app的多个实例。 – 2009-12-14 16:59:05

+0

是的 - 你说得对,这可能有点过分。我运行了应用程序的两个实例,并且我只收到Core Data错误 - 它实际上并没有将这些更改/错误写入商店。 – 2009-12-16 00:45:15

回答

1

作为锁定SQLite文件的替代方法,您可以尝试使用LSMultipleInstancesProhibited来禁止运行两个应用程序实例的用户。

编辑:缺点是它也会阻止多个用户(快速用户切换)同时使用您的应用程序,尽管他们不共享核心数据存储。

+0

是的,这不是我所需要的 - 我希望用户能够同时在不同的帐户中运行我的应用程序,而不是同时运行。我想我会将代码写入我的应用程序委托的applicationWillFinishLaunching:方法中。 – 2009-12-14 01:40:40