хранение в coredata от веб-сервисов - PullRequest
0 голосов
/ 22 июня 2010

Может кто-нибудь привести мне пример, который объяснит процесс хранения данных в coredata, которые получены от веб-службы.я не хочу использовать sqlite DB.возможно, ссылка, которая демонстрирует такой пример.

1 Ответ

4 голосов
/ 22 июня 2010

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

Например, большинство реализаций JSON предоставляют возвращаемые данные в виде словаря.Вы просто устанавливаете свойства в основном объекте данных на соответствующие значения в словаре.

Если вы не знакомы с настройкой и использованием основных данных, вам следует сначала изучить это.

Редактировать:

Из комментария:

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

Нет связи между источником данных и местоположением файла хранилища.В обычном случае вы не будете подключаться к управляемому хранилищу Core Data на веб-сервере (возможно, но редко). Вместо этого данные будут поступать с сервера в стандартном формате, таком как JSON, REST и т. Д. Ваше приложение будетсоздайте локальное хранилище (где бы вы ни решили его разместить) и инициализируйте стек основных данных.Затем он возьмет выходные данные анализатора JSON и создаст объекты NSManagedObject для представления данных.Затем он сохранит эти объекты в хранилище так же, как и в случае данных из любого другого источника.

Итак, в псевдокоде это будет выглядеть примерно так:

Core Data{
    Create local persistent store in desired location;
    Create managed object context;
    Load managed object model:
} 

Network Inteface {
    Connect to Server;
    Send request;
    Parse request into objective-C data structure (array, dictionary, etc)
}   

Load Data strucutre into Core Data{
    Either {
        Insert into context NSManageObject for entity that models recieved data
        or
        Insert into context instance of NSManagedObject subclass that models the recieved data
    }
    Set attributes of entity/instance to the appriopiate fields in the recieved data structure. 
    Save managed object context (which saves the entity/instance to the file on disk)   
}

Я думаю, вы думаете, что это гораздо более сложный и сложный процесс, чем он есть.Это в основном ничем не отличается от сохранения данных с сервера в локальный текстовый файл.Разница лишь в том, что вы сохраняете в стек основных данных.

...