2009-12-13 59 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