Лучший способ поделиться объектом данных между двумя локальными приложениями для iOS
Я ищу совет о том, что лучший инструмент для работы для обмена относительно сложным объектом данных между двумя приложениями iOS на одном устройстве.
У меня есть приложение для инвестиций в недвижимость, которое мы назовем приложением A, которое позволяет пользователю вводить данные о потенциальной инвестиционной собственности и вычислять важные финансовые показатели, такие как рентабельность инвестиций. Все данные свойства сохраняются с использованием Core Data в объекте, который мы будем называть Property.
Я занимаюсь разработкой приложения B, которое импортирует объект свойств из приложения A и создает отчет в формате PDF, который пользователь может отправить другим инвесторам. Объект Property не нужно сохранять в приложении B, он используется только временно для создания PDF-файла. Я хотел бы, чтобы пользователь мог открыть приложение A из приложения B и выбрать свойство, похожее на сборщик фотографий.
Мой первоначальный инстинкт - использовать схемы URL для решения этой проблемы. Это лучшее решение для моих нужд?
1 ответ
Вариантов не так много, и лишь немногие из них действительно требуют, чтобы оба приложения были разработаны одним и тем же разработчиком (что, как представляется, имеет место здесь).
Самый простой - это использовать общий частный именованный монтажный картон (UIPasteboard
) в сочетании с пользовательскими схемами URL.
Приложение A может поместить данные в монтажную панель и затем запустить приложение B, используя свою собственную схему URL. Конечно, оба приложения должны быть закодированы, чтобы понять, как данные записываются на монтажный щит и на его имя. Хотя имя монтажной панели может быть передано как часть пользовательского URL.
Как только приложение B сгенерирует PDF, может произойти обратный процесс. Приложение B может поместить PDF-файл в монтажную панель и затем запустить приложение A, используя свою собственную схему URL. Затем приложение A может получить PDF-файл из монтажной панели и представить его пользователю.
Или, если это имеет смысл, приложение B может использовать UIDocumentInteractionController
чтобы позволить пользователю выбрать, что делать с PDF. Это, безусловно, зависит от ваших потребностей.