2010-05-09 4 views
1

Я ныряя в развитие iPhone, поэтому я заранее извиняюсь, если это смешной вопрос, но в новом приложении проекта IPad с использованием базы данных ядра, вот сгенерированный код для создания persistentStoreCoordinator ...Где я могу найти постоянное хранилище основных данных iPhone приложения?

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { 

if (persistentStoreCoordinator != nil) { 
    return persistentStoreCoordinator; 
} 

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"ApplicationName.sqlite"]]; 

NSError *error = nil; 
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { 
    /* 
    Replace this implementation with code to handle the error appropriately. 

    abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. If it is not possible to recover from the error, display an alert panel that instructs the user to quit the application by pressing the Home button. 

    Typical reasons for an error here include: 
    * The persistent store is not accessible 
    * The schema for the persistent store is incompatible with current managed object model 
    Check the error message to determine what the actual problem was. 
    */ 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); 
}  

return persistentStoreCoordinator; 

}

Мои вопросы ...

  1. Первый раз, когда я запустить приложение, это база данных ApplicationName.sqllite создается автоматически, если она не существует? Если нет, то когда он создан? Когда данные добавляются к нему программно?
  2. Как только база данных существует, где я могу найти файл? Я хотел бы открыть его с помощью другой программы, чтобы я мог вручную манипулировать данными.

Заранее благодарим за помощь! Я собираюсь продолжить изучение этих вопросов прямо сейчас.

ответ

4

Да, база данных ApplicationName.sqlite будет создана, если ее уже нет. Он будет находиться в каталоге вашего приложения Documents (при условии, что это возвращает ваш метод -applicationDocumentsDirectory).

Если вы используете это в Simulator, вы можете найти данные приложения в пределах ~/Library/Application Support/iPhone Simulator. В 3.2+ SDK разные версии ОС используются для группировки приложений, созданных с использованием конкретного SDK, поэтому вам нужно перейти в соответствующий каталог версий, затем Applications, а затем найти нумерованный каталог приложения (в значительной степени с помощью пробных и -ошибка). Здесь будет найден каталог Documents и база данных sqlite.

При запуске на устройстве вы можете перейти к Органайзеру, выбрать свое устройство (при подключении к системе) и перейти к разделу «Приложения» на вкладке «Сводка». Нажмите стрелку раскрытия рядом с именем вашего приложения, и вы можете перетащить из нее данные приложения в каталог, чтобы вытащить все рабочие данные вашего приложения из приложения на устройстве.

+0

Спасибо, Брэд, ты был огромной помощью весь день! – BeachRunnerFred

3

Магазин создается с помощью метода

addPersistentStoreWithType:configuration:URL:options:error: 

. Используйте

NSLog(@"store path: %@", storeUrl); 

, чтобы увидеть путь к файлу хранилища в applicationDocumentsDirectory.

Для загрузки и просмотра всего applicationDocumentsDirectory вашего устройства используйте Xcode Organizer: выберите устройство, нажмите треугольник раскрытия приложения, а затем на стрелку справа от комплекта приложений.

Смежные вопросы