В настоящее время мое приложение использует CoreData в качестве серверной части для хранения в одном файле данных SQL, хранящемся в ~/Library/Application Support/MYAPP/MyDataFile.sqlite
. Я знаю, что это необычная ситуация, но как лучше всего «заблокировать» этот файл, чтобы, если пользователь решит (по какой-то глупой причине) запустить вторую копию моего приложения, Core Data не взбесился? Должен ли я использовать что-то старое, например, написать где-нибудь файл блокировки и проверить его, или есть более приятный способ сделать это какао?
Блокировка одного NSPersistentDocument
comment
Является ли ваше приложение приложением командной строки? Если это не так, вам, вероятно, не о чем беспокоиться. OS X обычно не позволяет запускать несколько экземпляров .app.
- person Barry Wark   schedule 14.12.2009
comment
Да, вы правы, это, вероятно, немного переусердствовать. Я запустил два экземпляра приложения, и я получаю только ошибки Core Data - на самом деле, похоже, эти изменения/ошибки не записываются в хранилище.
- person Tony Arnold   schedule 16.12.2009
Ответы (1)
В качестве альтернативы блокировке файла SQLite вы можете попробовать использовать LSMultipleInstancesProhibited, чтобы запретить пользователям запускать два экземпляра приложения.
Изменить: недостатком является то, что это также предотвратит одновременное использование вашего приложения несколькими пользователями (быстрое переключение пользователей), хотя они не используют основное хранилище данных.
person
diciu
schedule
13.12.2009
Да, это не совсем то, что мне нужно — я хочу, чтобы пользователи могли одновременно запускать мое приложение в разных учетных записях, просто не в одно и то же время. Я думаю, что закодирую что-нибудь в методе applicationWillFinishLaunching: моего делегата приложения.
- person Tony Arnold; 14.12.2009