Какие методы доступа к sqlite db напрямую из пути пакета в iphone SDK? - PullRequest
0 голосов
/ 26 ноября 2011

Можно ли получить доступ к sqlite db напрямую из пути пакета или скопировать sqlite db из пакета в документальный путь, а затем получить доступ к базе данных sqlite?Какой эффективный метод?Может кто-нибудь предложить мне по этому поводу?

Ответы [ 3 ]

1 голос
/ 26 ноября 2011

Вы не можете изменять файлы, которые находятся в комплекте. Если вам нужно внести изменения в базу данных, вам нужно скопировать ее в каталог документов. но если база данных не изменяется, вы можете хранить ее в связке. Но принято, что люди создают копию базы данных в каталоге документов.

Изменение в базе данных = манипулировать записями базы данных.

0 голосов
/ 26 ноября 2011

Если вы хотите получить доступ или прочитать данные БД непосредственно из каталога документов,

  1. Необходимо программно скопировать БД в каталог документов, а затем использовать следующий код для доступа к БД (операции выбора, обновления, удаления).

    NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES) objectAtIndex:0];
    
    NSString* foofile = [documentsPath stringByAppendingPathComponent:@"XYZ.sqlite"];
    
    
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:foofile];
    
    if(fileExists)
    {
     if (foofile)
     {
       myText = [[NSString alloc] initWithContentsOfFile:foofile];    
       if (myText)
       {
        [self start];
       }
       else{;}      
     }
    }
    else
    {
      NSString *filePath = [[NSBundle mainBundle] pathForResource:@"XYZ" 
                                                           ofType:@"sqlite"];
      if (filePath)
      {  
       myText = [[NSString alloc] initWithContentsOfFile:filePath];    
       if (myText)
       {
          [self start];
       }
       else
       {;}      
      }
     }
    
0 голосов
/ 26 ноября 2011

Было бы лучше, чтобы вы скопировали БД в библиотеку или каталог документов и сделали весь процесс из локальной сохраненной базы данных в папке документа или библиотеки.

Я предпочитаю хранить его в папке библиотеки, чтобы пользователь не мог его открыть и удалить, просто ради безопасности. Если вы обращаетесь к БД из основного комплекта, у вас могут возникнуть проблемы, если вы обновите версию приложения и захотите внести изменения в вашу БД.

Итак, лучший вариант - сохранить базу данных в папке «Документ» или «Библиотека» и получить к ней доступ.

Надеюсь, это имеет какой-то смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...