Срок службы элементов UIPasteboard (generalPasteboard)

Сколько времени хранятся предметы в обычном картоне?

В документации Apple говорится:

Общий монтажный стол сохраняется при перезапуске устройства и удалении приложений.

Что у меня есть:

  • Два (или более) приложения, подписанных профилями с разными идентификаторами команды;
  • Приложения должны хранить свои собственные схемы URL-адресов в общем месте;

Что я собираюсь делать:

  • Используйте [UIPasteboard generalPasteboard] для хранения этих схем, чтобы они были доступны из всех этих приложений.

Что мне нужно:

  • У этих приложений должен быть доступ к этому общему «хранилищу»;
  • Чтобы убедиться, что элементы картона сохранятся в течение длительного периода времени (всегда :-));

Общий картон стойкий. Это ясно, но не совсем ясно о сроке службы элементов на этом картоне.

В основном возникает вопрос: могу ли я использовать общий монтажный стол в качестве хранилища между приложениями (в течение длительных периодов времени)?

Обновления:

P.S. Я понимаю, что это не хороший (правильный) подход, но мне нужно, чтобы все эти приложения знали схемы друг друга, поэтому требуется одно общее хранилище, доступное в любое время (я не могу ожидать, когда пользователь откроет все эти приложения ). Мне нужно решение без использования серверной части.


person Alex Maimescu    schedule 12.12.2013    source источник


Ответы (1)


Могу ли я использовать общий монтажный стол в качестве хранилища между приложениями (в течение длительных периодов времени)

Нет. Общий монтажный стол позволяет приложениям обмениваться данными в ответ на явное действие пользователя. Он не предназначен для использования в качестве общей базы данных или репозитория. Фактически, никакое другое приложение не требуется (и не должно) сохранять существующее содержимое при записи на общий монтажный стол. Ваши схемы URL-адресов будут перезаписаны самой следующей копией, инициированной пользователем.

person MyztikJenz    schedule 12.12.2013
comment
Если ваши приложения взаимодействуют с сетью, это не проблема, разумным решением будет их регистрация своих схем где-нибудь на сервере. Сохранение хранилища полностью зависит от вас. Если сервер не подходит и схемы не сильно меняются, вы можете попросить пользователя провести обмен схемами при первом запуске приложения. Приложение A переключается на приложение B, чтобы получить схемы, затем переключается обратно, чтобы установить их локально. Это не самое идеальное решение, но если оно разовое, то не такое навязчивое. - person MyztikJenz; 12.12.2013
comment
На самом деле проблема в том, что все приложения (A, B и т. Д.) Зарегистрировали свои пользовательские (уникальные) схемы URL-адресов, а приложение A не знает схему приложения B. Идея состоит в том, что все приложения должны знать друг о друге. (без бэкэнда). Итак, что касается вашего ответа, как я могу переключиться с приложения A на приложение B, если я не знаю его схемы? - person Alex Maimescu; 12.12.2013
comment
Хм ... хороший момент. Без общей схемы приложениям будет сложно узнавать друг о друге. Если пользователь знает, что A и B могут быть подключены, возможно, они могли бы предоставить интерфейс сопряжения, в котором одно приложение помещает частный тип на общую монтажную панель (содержащую его схему), а затем инструктирует пользователя запустить другое приложение. Затем другое приложение ищет этот тип на монтажном столе и подтверждает пользователю, что узнал о другом приложении. Если возможность подключения приложений не очевидна для пользователя, это не сработает ... но можно утверждать, что это проблема сама по себе. - person MyztikJenz; 12.12.2013
comment
Как можно решить проблему с помощью общей схемы URL? Когда мы определяем одну и ту же настраиваемую схему URL-адресов для нескольких приложений, поведение iOS не определено (из документации Apple: если более одного стороннего приложения регистрируется для обработки одной и той же схемы URL-адресов, в настоящее время нет процесса для определения того, какое приложение получит это схема.). Поэтому я не могу выбрать, какое приложение открыть A, B или другое, iOS сделает этот выбор за меня. - person Alex Maimescu; 13.12.2013
comment
Извините, s / common / known /. Вы правы, что поведение для схем, зарегистрированных более одного раза, не определено, что очень прискорбно. - person MyztikJenz; 13.12.2013