什么是iCloud
iCloud是苹果公司提供的云服务的总称。每一个拥有Apple ID的用户都拥有5G大小的空间使用权。用户可以使用iCloud的空间来进行数据的备份,联系人备份,照片备份,应用备份等。好处就是当你有多台设备或者是换新的设备的时候。可以有无差别的体验。
对于开发者来说,iCloud相当于提供了一种官方形式的云端存储形式。帮助你的App实现所谓理想的状态。不论用户在什么设备打开App。 里面的数据,设置,形状,大小。都跟他上次打开的一模一样。这样你的App会给你的用户非一般的体验。
开发慎用iCloud
上一段说了iCloud的优点,其实是接近意淫中的理想状态。我以近一年的血泪史告诫,初级开发者,应该避免使用iCloud。中高级开发者视项目规划内容酌情使用。如果能有其他方案替代iCloud,建议优先使用其他方案。
初级开发者: iCloud的三种存储方式 Key-Value, Documents, Core Data都是在之前已有的框架上进行扩展的高级接口。换言之,你应该先具备了这三种技术的基本知识再开始考虑学习iCloud。 iCloud + Key-Value对应的基础是NSUserDefaults。 iCloud + Documents对应的基础是使用文档进行数据存储(NSFileManager,NSFileCoordinator,NSFileWrapper,NSCoding等一系列持久化数据存储到文件的问题). iCloud + Core Data的对应基础就是Core Data。本来是强烈建议如果没有这些基础的人不要直接来学习iCloud的。但是谁都是一步一步走过来的,如果要用到iCloud的某一种方式。建议先把基础的持久化方式原理弄懂了,在看iCloud的部分。不然学习门槛的过高,会使得进度无法按时推进。
中高级开发者:如果是已经用过Key-Value,Documents,Core Data的。应该会很快能明白iCloud的原理。 而进行开发。但是值得注意的是,iCloud的使用和调试会非常的消耗时间和精力。并且和你的当前网络状态息息相关。然后会出现各种诡异的情况。这个时候你都需要淡定很超级的耐心。去找到这些坑,然后慢慢的积累经验去绕过这些坑。(在这里先挖坑,后面在慢慢写我的一些使用经验)