Использование Parse BaaS на iOS: следует ли использовать PFFile для сохранения примитивных типов и классов Objective-C?

Пытаясь разобраться с использованием Parse (Parse.com BaaS [внутренняя часть как услуга], для непосвященных), и при чтении ссылки на PFFile я не совсем понимаю, что означает «нереляционный способ» в описание «Обзор»: «Файл двоичных данных, хранящийся на серверах Parse. Это может быть изображение, видео или что-либо еще, на что приложение должно ссылаться нереляционным способом».

Может ли кто-нибудь, желательно с опытом работы с Parse, прояснить это? Прямо сейчас я разрабатываю отправку базовых объектов Objective-C и примитивных типов данных только на сервер. Никаких картинок, аудио и прочего.

Когда мне следует использовать PFFile, скажем, вместо PFObject?

(Кроме того, кто-то должен добавить теги BaaS, MBaaS, backend-as-a-service, mobile-backend-as-a-service. Я, конечно, не могу.)

РЕДАКТИРОВАТЬ: И некоторые или все классы Parse, PFObject, PFFile и т. д. и т. д.


person baptzmoffire    schedule 10.05.2013    source источник


Ответы (1)


Я относительно рано начал использовать Parse для своего приложения для iOS. Отчасти потому, что я должен поддерживать автономную работу, а отчасти потому, что я был в процессе разработки, я решил иметь собственную БД с использованием CoreData. По сути, я копирую информацию из своих объектов CoreData в объекты Parse, которые выглядят очень похоже. Если бы у меня были более слабые требования к работе в автономном режиме, я мог бы попытаться создать БД, основанную исключительно на Parse. Parse поддерживает кэширование для автономной работы, но мне это показалось слишком сомнительным.

Всем моим изображениям присваиваются имена файлов UUID, и они хранятся локально в моем приложении. Имена файлов могут появляться в объектах. Я перемещу эти файлы в Parse как файлы с теми же именами. Поскольку это UUID, я знаю, что мне не нужно беспокоиться о конфликтах.

В некоторых случаях я перемещаю файлы sqlite DB, которые являются моими локальными постоянными хранилищами на iOS, в Parse как файлы, а затем пытаюсь загрузить их обратно в iOS. Я ожидаю, что это сработает, но не проверял, нет ли невидимых ошибок. Я буду делать это для больших пакетов объектов, которые будут использоваться только в самих приложениях iOS.

Если бы моему приложению нужно было только передавать объекты другим приложениям iOS, я мог бы не использовать Parse. Мне нужно обмениваться данными с веб-сайтом и с приложением для Android. Это, а также мое стремление к простоте работы с API для моего бэкенда делают Parse правильным выбором.

person LostInTheTrees    schedule 12.05.2013
comment
Я не совсем уверен, что это ответ на мой вопрос, а скорее комментарий о том, когда использовать Parse, а не локальную БД? Вернувшись и прочитав свой пост, я понял, что вопрос мог бы быть более ясным. Чтобы уточнить, я знаю, что должен использовать Parse для своего бэкенда, потому что я ничего не знаю о серверных вещах или базах данных, и я ищу самое простое и быстрое в реализации решение. Моя единственная реальная проблема заключается в том, что означает нереляционный способ в документации PFFile. Это меня смущает, поэтому возникает вопрос: когда мне следует использовать PFFile? - person baptzmoffire; 13.05.2013
comment
Я понял, что ваш вопрос в основном заключается в том, когда я должен использовать PFObject и когда я должен использовать PFFile? Проще говоря, если у вас есть объект со свойствами в iOS, он должен быть PFObject в Parse. Используйте PFFile для больших объектов, не имеющих внутренней структуры (которые вас беспокоят). Другими словами, используйте PFFile для больших двоичных объектов. Нереляционная фраза немного сбивает с толку. Я думаю, они имеют в виду, что объект не состоит из отдельных полей (или столбцов, если хотите). - person LostInTheTrees; 14.05.2013
comment
Большое спасибо. Я так и думал, что ты к этому клонишь. Имеет смысл. - person baptzmoffire; 14.05.2013