- NSDate (Date)
- NSNumber (Int / Double)
- NSString (String)
- NSArray (Array)
Registering app for use with CloudKit
What you need is to get an entitlements file so the app can access your iCloud and write records using CloudKit.
Follow the steps to grant access to iCloud from your app:
1- Select the project in the Project Navigator, and then open the General tab.
2- In the Identity section, set your developer Apple ID to the Team dropdown menu. (If it is not available, add it in Xcode menu -> Preferences -> Accounts.
3- Go to Capabilities tab in the project properties and turn iCloud on. Then, select "Key-Value Storage" and "CloudKit".
4- Make sure these items are checked:
If all of the items are checked, then your app is ready to use CloudKit.
Saving data to CloudKit
To save date to CloudKit, we must make:
CKRecordID(the key of your unique record)
CKRecord(which includes data)
Making a record key
To ensure that every new record identifier is unique, we use the current timestamp, which is unique. We get the timestamp using
timeIntervalSinceReferenceDate(). It is in form of ###.### (# are numbers), which we will use the integer part. To do this, we split the string:
Making the record
To make the record, we should specify the record type (explained in Using CloudKit Dashboard) as Users, the ID as the thing we made just now and the data. Here, we will add a sample text, a picture and the current date to the record:
Here, we didn't add the
UIImagedirectly to the record, because as mentioned in Remarks, image format isn't directly supported in CloudKit, so we have converted
Accessing the container
Saving the records to CloudKit database
Using CloudKit Dashboard
All the records create using CloudKit-related code can be previewed, edited and even removed in CloudKit Dashboard. To access CloudKit Dashboard, go here.
There are several parts in the dashboard:
- Record Types (which will be discussed later)
- Security Roles (which is where you can set databases as public or private)
- Subscription Types (which your app could register for Apple Push Notifications (APNs) to notify you when a record is changed)
Here, you get a list of all the existing record types in the app. When you first open CloudKit Dashboard for an app, there’s a record type called Users there, which you can use it or just delete it and use your own.
In this page, you could make your data typed manually. Of course, in most cases this is pointless, because iOS SDK can handle it way better than the dashboard, but the functionality is also there if you prefer. The most use of this page is for previewing types.