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

Hos*_*sam 2 objective-c ios icloud

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

是否从设置中删除应用程序和应用程序数据?之前我做过,它引起了很多错误.

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

干杯谢谢

isa*_*aac 7

删除应用程序是不够的 - 实际上iCloud的好处在于它不在应用程序沙箱中.此过程可能会有所不同,具体取决于您使用的iCloud解决方案的类型.

如果您正在使用CoreData,那么将以编程方式遍历您的模型堆栈并删除(如果您有一个设计良好的模型具有正确的删除规则,希望您可以从最高级别的关系中删除并让删除流程下).

如果您使用的是键值存储,则非常简单:

获取对你的iCloud ubiquity商店的参考,就像这样(大概你已经有了一个地方):

@property (strong, nonatomic) NSUbiquitousKeyValueStore *ubiquitousStore;
Run Code Online (Sandbox Code Playgroud)

要清除它,枚举它包含的对象并删除它们:

- (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];

}
Run Code Online (Sandbox Code Playgroud)