Основные данные и MySQL - PullRequest
       28

Основные данные и MySQL

2 голосов
/ 07 октября 2009

Как мне создать приложение с основными данными, которое синхронизируется с базой данных MySQL?

Должен ли я реализовать слой SQL-Lite и попытаться синхронизировать с MySQL таким образом?

Или лучше запустить веб-сервисы? Я хочу воспользоваться преимуществами моделирования основных данных.

Есть ли способ использовать Linq? Я люблю linq.

Ответы [ 4 ]

5 голосов
/ 09 февраля 2011

Я - программист PHP / MySQL в своей повседневной работе, и самый простой способ получить данные из MySQL для моего приложения Core Data - установить HTTP-соединение с веб-сервером PHP, который возвращает данные в формате plist xml. Затем я могу легко заполнить NSArray, используя данные plist.

Например, вот как я это сделал в своем приложении:

NSURL *url = [NSURL URLWithString:@"http://myphpwebsite.com/products"];
NSArray *products = [[NSArray alloc] initWithContentsOfURL:url];

Затем у меня был NSArray продуктов, которые я использовал в своем приложении и сохранил Core Data.

Я всегда рекомендую людям использовать PHP, Apache и MySQL вместе. Они отлично работают вместе на сервере, почти без проблем. Например, я могу легко получить данные из MySQL, используя PHP. Затем я могу манипулировать этими данными в PHP в формате plist xml, который используется моим приложением для iPhone.

3 голосов
/ 07 октября 2009

Если вы используете CoreData, у вас нет прямого доступа к его базовому хранилищу (за исключением реализации пользовательских атомарных хранилищ). Если вы хотите синхронизироваться с MySQL, вам нужно получить доступ к базе данных MySQL (напрямую через libmysql или через сервер приложений), а затем направить эти данные в управляемые объекты.

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

И нет, на iPhone нет возможности использовать LINQ. Я полагаю, что в какой-то момент в будущем это будет возможно через MonoTouch, но если вы не пишете полноценное приложение MonoTouch, я подозреваю, что маршалинг объектов назад и вперед для его использования будет очень неестественным с кодом Objective-C.

2 голосов
/ 11 августа 2010

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

Он будет включен в следующую версию платформы QuickConnectFamily. http://www.quickconnectfamily.org

Дайте мне знать, если вам нужен код перед выпуском. A

1 голос
/ 24 августа 2011

Также взгляните на Restkit.org На меня указали, когда я задал похожий вопрос (но я использую Core Data), и это выглядит очень многообещающе!

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