如何正确重置应用程序的iCloud存储

时间:2012-12-14 00:31:48

标签: objective-c ios icloud

我现在正在将iCloud添加到我的应用程序中,并且能够测试升级方案,我需要时不时地完全重置iCloud存储。

是否已从设置中删除应用和应用数据?我之前做过这件事,造成了很多错误。

完全重置iCloud设置和存储以使应用程序启动的正确方法是什么?就好像它是一个全新的应用程序安装一样?

干杯谢谢

1 个答案:

答案 0 :(得分:7)

删除应用程序是不够的 - 实际上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];

}