2012-01-26 3 views
0

Мое приложение имеет файл базы данных в своем NSBundle. Я хочу получить файл базы данных обновления из Интернета, когда будет доступен новый файл базы данных. и это должно произойти до того, как приложение отобразит данные из файла базы данных. Вот логика, которую я пытаюсь использовать. я не знаю, имеет ли это смысл или есть лучший способ сделать это. пример будет удивительнымКак обновить файл базы данных через Интернет?

if (file is available in the Documents Directory) 
{ 
    if(check if internet is available) 
    { 
     1. get file from network 
     2. store it in Documents Directory 
     if (compare contents of the old & new file) 
     { 
      delete downloaded file 
     } else { 
      move or delete old file & rename new file (so that the new file's data can be accessed) 
     } 
    } else { 
     use old file in Documents Directory 
    } 
} else { 
    copy file from bundle to Documents Directory 
} 

ответ

3

В идеале вы должны иметь метку времени или номер версии для копии БД у вас на телефоне, и передать, что на сервер. Затем сервер отправит новую копию, если есть более новая версия. Сохраняет пользователю множество сборов за передачу данных.

+0

Согласен. Не передавать всю БД. Вы также можете прочитать информацию об управлении версией базы данных. http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html – DougW

+0

Hot Licks & DougW, Спасибо за руководство. Не могли бы вы указать мне какую-то ссылку на учебник или пример кода, который может мне помочь. – Hitz

+0

@Hitz - Вообще говоря, вы должны использовать интерфейс REST. Как только вы сможете взаимодействовать с интерфейсом REST, детали довольно просты (или более сложные, если вы хотите делать частичные обновления - это зависит от вас). –

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