Использование GameKit для передачи данных CoreData между iPhone - PullRequest
3 голосов
/ 01 марта 2010

У меня есть приложение, в котором я хотел бы обмениваться информацией, управляемой через Core Data, между двумя iPhone.

Кто-нибудь пытался это сделать, и если да, то, что считается наилучшим подходом к этому (т. Е. Люди используют какой-то промежуточный формат, например XML или JSON в файле, или объекты могут передаваться напрямую).

Приношу свои извинения, если вопрос кажется слишком полным по объему, но я нахожусь на этапе, когда мне нужно определиться с подходом к передаче, и у меня нет опыта работы с этим API.

Буду чрезвычайно признателен за любые примеры кода или ссылки на любой такой пример для передачи объектов между устройствами с помощью GameKit.

Ответы [ 2 ]

5 голосов
/ 01 марта 2010

Нельзя передавать объекты Core Data напрямую между устройствами, поскольку они связаны с их контекстом и постоянными хранилищами. Вам нужно будет перевести данные в промежуточный формат (может быть таким же простым, как NSDictionary, который превращается в NSData) и протолкнуть их через соединение, а затем восстановить данные на другой стороне.

Лично я чувствую, что JSON отлично подходит для ситуаций такого типа, потому что вы можете легко превратить граф объектов Core Data в набор потребляемых объектов JSON (словари, массивы, строки и числа), которые можно легко перемещать.

2 голосов
/ 01 марта 2010

Вы ищете одноразовый перевод? Или вы хотите синхронизировать между собой два айфона (игра?).

Я не слишком углублялся в эту тему, однако, если вы создаете игру, я предлагаю вам взглянуть на главу «Службы синхронизации и основные данные» в книге «Основные данные: API Apple для хранения данных на Mac». OS X ".

http://www.pragprog.com/titles/mzcd/core-data

Похоже, GameKit просто устанавливает соединение через Bluetooth. Если вы хотите использовать IP в будущем, изучите использование AsyncSockets.

http://code.google.com/p/cocoaasyncsocket/

...