【发布时间】:2012-12-14 00:31:47
【问题描述】:
我现在正在将 iCloud 添加到我的应用中,并且为了能够测试升级方案,我需要不时地完全重置 iCloud 存储。
从设置中删除应用程序和应用程序数据是否足够?我以前这样做过,它导致了很多错误。
什么是完全重置 iCloud 设置和存储以启动应用程序的正确方法,就好像它是一个全新的应用程序安装一样?
干杯和感谢
【问题讨论】:
标签: objective-c ios icloud
我现在正在将 iCloud 添加到我的应用中,并且为了能够测试升级方案,我需要不时地完全重置 iCloud 存储。
从设置中删除应用程序和应用程序数据是否足够?我以前这样做过,它导致了很多错误。
什么是完全重置 iCloud 设置和存储以启动应用程序的正确方法,就好像它是一个全新的应用程序安装一样?
干杯和感谢
【问题讨论】:
标签: objective-c ios icloud
删除应用程序是不够的——事实上,iCloud 的好处在于它位于应用程序沙箱之外。该过程可能因您使用的 iCloud 解决方案类型而异。
如果您使用 CoreData,这将是一个以编程方式遍历您的模型堆栈并删除的问题(如果您有一个设计良好且具有正确删除规则的模型,希望您可以从最高级别的关系中删除并让删除会顺流而下)。
如果您使用的是键值存储,则非常简单:
获取对您的 iCloud 通用商店的引用,类似这样(可能您已经在某个地方找到了):
@property (strong, nonatomic) NSUbiquitousKeyValueStore *ubiquitousStore;
要清除它,请枚举它包含的对象并删除它们:
- (void)cleariCloudUbiquitousStore
{
// Clear everything regardless of actual key:
for (NSString *key in self.ubiquitousStore.dictionaryRepresentation.allKeys)
{
[self.ubiquitousStore removeObjectForKey:key];
}
// Sync back to iCloud
[self.ubiquitousStore synchronize];
}
【讨论】: