Как инициализировать CKSubscription в iOS 10.3

Я создаю приложение, которому необходимо подписаться на запись изменений в общедоступной базе данных iCloud. Теперь, после просмотра видеороликов Apple и прочтения их документации, я решил приступить к работе. Однако тут я сразу застрял:

введите описание изображения здесь

Все методы инициализации в CKSubScription устарели. Это можно увидеть здесь, но между тем Apple, похоже, по-прежнему использует те же самые методы в своих документация здесь.

Это меня удивило. Глядя в Интернете и SO, кажется, что не так уж много информации или каких-либо руководств (по крайней мере, ни одно из них не содержит актуальной информации об инициализации подписок), вероятно, потому, что эта технология относительно новая, и эти изменения произошли недавно. У меня очень поверхностный опыт работы с CloudKit, поэтому я лучше попрошу приличный способ сделать это, чем буду что-то импровизировать сам. Мой вопрос:

Как инициализировать CKSubscription?

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


person Joris416    schedule 15.05.2017    source источник


Ответы (2)


Похоже, что CKSubscription действительно более или менее устарел.

Согласно http://iosdevetips.blogspot.de/2016/06/deprecated-apis-in-ios-10.html теперь вам следует использовать CKRecordZoneSubscription и CKQuerySubscription.


Обновление: Как отметил Тревис, документы здесь не очень полезны, но, по крайней мере, Xcode показывает несколько полезное предупреждение: введите здесь описание изображения

person d4Rk    schedule 15.05.2017
comment
Как относительно новый разработчик iOS, меня очень расстраивает то, что их документ не говорит вам, что вы хотите, чтобы новая популярность была при просмотре устаревшей ссылки. Кажется, не так много, чтобы спросить. Спасибо за ваш ответ. - person Trevis Thomas; 01.07.2017
comment
Вы правы, но по крайней мере Xcode показывает предупреждение об этом (см. мой обновленный ответ) - person d4Rk; 02.07.2017
comment
Вероятно, это неправильно, но если вы только начинаете разработку для iOS, я бы посоветовал вам проигнорировать это предупреждение и все равно использовать этот метод — устаревшие методы не исчезнут через несколько лет, и лучше, прежде чем они исчезнут в будущем. документация обязательно появится. - person Teng L; 07.06.2018
comment
@TrevisThomas: Вот тут и написано новое горячее: Init the appropriate CKSubsription subclass. Что еще вы хотите? - person Mojo66; 07.05.2020
comment
Существует также CKDatabaseSubscription, который позволяет указать тип записи для запроса. - person Reinhard Männer; 19.07.2021

Если вы ищете новый класс для замены собственной документации Apple, используйте CKQuerySubscription вместо CKSubscription. У них почти одинаковые инициализаторы.

person Teng L    schedule 07.06.2018