22.2. Storing and Synchronizing Dictionaries in iCloud
Problem
You want to store key-value data in dictionary form in iCloud and seamlessly read and write to this centralized and synchronized dictionary from various devices and from various iCloud accounts.
Solution
Use the NSUbiquitousKeyValueStore
class.
The data that you store in iCloud using the NSUbiquitousKeyValueStore
is uniquely created
in iCloud using the provision profile with which you sign the app and
the end user’s iCloud account. In other word, you simply store values in
iCloud using the NSUbiquitousKeyValueStore
class, not worrying
if one user’s data is going to clash with another user’s data. iCloud
does that separation for you.
In Recipe 22.1, we used the
Capabilities tab of our target settings to enable iCloud for our app.
However, to use the NSUbiquitousKeyValueStore
class, we need to
enable the key-value store for iCloud as well. This can be done from the
same Capabilities tab of your target settings. Once you are in the
Capabilities tab, expand the iCloud section if it’s not already
expanded, and then ensure that the Use key-value
store option is ticked, as shown in Figure 22-5.
Discussion
The NSUbiquitousKeyValueStore
class works very similar to the NSUserDefaults
class. It can store string, Boolean, integer, float and other values.
Each one of the values has to have a key associated
with it. You will then be able to read the values by passing the keys to
this class. The difference between the NSUbiquitousKeyValueStore ...
Get iOS 7 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.