Difference between CloudKit and Key-Value Storage

I just thought it might be helpful to mention that according to the iCloud Design Guide:

Apps may store only 1 MB of data in their key-value storage

So that may be something that one would want to take into account in deciding between CloudKit and iCloud Key-Value Storage.

In my case, for the app I'm currently working on this limitation is totally fine. However, I would imagine that in a larger project the 1 MB limit might not be sufficient. Helps to know that up front when making the decision!

Hope this helps!


CloudKit is for syncing real data records as well as assets (files).

iCloud's key-value storage is essential NSUserDefaults but synced across devices.

So think of it that way. If it's a simple value you might store in NSUserDefaults, use key-value storage. If it's actual data you might store in a plist, database, file, or core-data, use CloudKit.