Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to initialize a CKSubscription in iOS 10.3

I am building an app that needs to subscribe to record changes in the public database of iCloud. Now, after watching the apple video's and reading their documentation, I decided to get to work. However, I immediately got stuck here:

enter image description here

All initialization methods on a CKSubScription are deprecated. This can be seen here, but meanwhile apple still seems to use the very same methods in their documentation here.

This left me surprised. Looking around on the web and SO, there doesn't seem too be much information or any tutorials available (at least, none with up to date info on initializing subscriptions), probably because this technology is relatively new and these changes are recent. I have very superficial experience with CloudKit, so I'd rather ask for a decent way to do this than to improvise something myself. My question is:

How to initialize a CKSubscription?

Obviously, if the entire idea of subscriptions is outdated I am open to any answer that will result in my app receiving pushes when records of specific types appear in my public database.

like image 389
Joris416 Avatar asked May 15 '17 13:05

Joris416


2 Answers

Seems like CKSubscription is really more or less deprecated.

According to http://iosdevetips.blogspot.de/2016/06/deprecated-apis-in-ios-10.html you should use CKRecordZoneSubscription and CKQuerySubscription now.


Update: Like Trevis pointed out, the docs are not really helpful here, but at least Xcode shows a somewhat helpful Warning: enter image description here

like image 125
d4Rk Avatar answered Sep 18 '22 10:09

d4Rk


If you are looking for a new class to substitute Apple's own documentation, use CKQuerySubscription in place of CKSubscription. They have almost identical initializers.

like image 30
Teng L Avatar answered Sep 19 '22 10:09

Teng L