- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我遇到了与 this question 相同的问题当我删除应用程序时,iCloud 无处不在的容器没有被清理。
但是当我尝试删除无处不在的容器时,我收到一条错误消息(操作无法完成。(Cocoa 错误 513。))。我怎样才能删除它?这是我正在使用的:
NSString *path = @"/private/var/mobile/Library/Mobile Documents/XXXXXX";
[[NSFileManager defaultManager] removeItemAtPath:path error:&error];
编辑:即使我删除了设备上的应用程序和所有 iCloud 数据(设置应用程序->iCloud->存储和备份->管理存储->应用程序名称),iCloud 无处不在的容器中仍有一些数据遗留。这是我第一次启动应用程序时要删除的数据(以防用户重新安装应用程序)。
最佳答案
您应该能够通过转到设置应用程序->iCloud->存储和备份->管理存储->应用程序名称,然后删除任何文件来删除 ubiquity 容器内的文件。我认为您可能只会看到 iCloud/Documents 目录中的文件,因此您可能需要代码来清除其他任何内容。
或者使用 Mac 并转到 ~/Library/Mobile Documents 并删除那里的文件。
要获取 iCloud 容器,请使用:
NSURL *iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:ubiquityID];
其中 ubiquityID
是您的应用 iCloud 容器 ID。
要列出 iCloud 容器中的所有文件,请使用类似这样的方法传入 iCloudURL
/*! Recursively lists all files
@param dir The directory to list
@param padding A string padding to indent the output depending on the level of recursion
*/
- (void)listAllFilesInDirectory:(NSURL*)dir padding:(NSString*)padding {
NSArray *docs = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:dir includingPropertiesForKeys:nil options:0 error:nil];
for (NSURL* document in docs) {
FLOG(@" %@ %@", padding, [document lastPathComponent]);
BOOL isDir;
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:document.path isDirectory:&isDir];
if (fileExists && isDir) {
[self listAllFilesInDirectory:document padding:[NSString stringWithFormat:@" %@", padding]];
}
}
}
要从无处不在的容器中删除内容,您需要像这样使用 fileCoordinator:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
[fileCoordinator coordinateWritingItemAtURL:fileURL options:NSFileCoordinatorWritingForDeleting
error:nil byAccessor:^(NSURL* writingURL) {
NSFileManager* fileManager = [[NSFileManager alloc] init];
NSError *er;
//FLOG(@" deleting %@", writingURL);
bool res = [fileManager removeItemAtURL:writingURL error:&er];
if (res) {
LOG(@" iCloud files removed");
}
else {
LOG(@" document NOT removed");
FLOG(@" error %@, %@", er, er.userInfo);
}
}];
}
关于ios - 如何删除 iPhone 上的 iCloud 无处不在的容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21058596/
我们突然开始收到 SequelizeConnectionAcquireTimeoutError 2或3周前的日志,我不知道我能做些什么了。 所以显然有一个连接池,当它已满时,之后的所有操作都会超时,因
由于 IE 的原因,我需要构建一个自定义错误,但是,必须尽我所能,使用构造函数检查错误。 customError instanceof CustomError; // false customErro
相当确定 gradle 适合我。几天前启动了一个运行良好的项目。更新了android studio,再次打开项目。我已经尝试了所有我能想到的方法,从删除/更新检查 xml 文件和结构的库。删除 gra
我希望看到 SO 社区对此的回应。我了解 ViewModel 基本上用于将 View 与数据绑定(bind)。当表单提交时,返回(模型绑定(bind))的对象应该是 ViewModel 还是实体?我知
我想知道 NSUserDefaults 对象是否是共享的,并且可以从应用程序委托(delegate)以及我的几个 View Controller 中访问。基本上我需要从应用程序委托(delegate)
将所有 Sql Server 2008 字符串列设为 varchar(max) 是否有任何问题?我允许的字符串大小由应用程序管理。数据库应该只保留我给它的内容。在 Sql Server 2008 中将
因此,我一直在尝试对自定义 WordPress 主题进行一些更改,该主题引入了对仪表板的全面检修。我一直发现我需要修复的原始主题的小问题(导入新帖子时未正确检查重复帖子,未正确存储帖子元数据,未将帖子
我到处都能看到 Open Sans 字体,大多数时候它都非常流畅,即使在 Chrome 中也是如此。但是当我从 adobe typekit 或 google fonts 添加 open sans 到我
我有一个通用 Parameter 接口(interface)及其ParameterImpl 具体类。 T 可以是 float 、长整型、整数或字符串。 public interface Paramet
我正在尝试编写一个简单的 Ubiquity将在 Wolfram Alpha 上运行查询的命令, 并在 Ubiquity 预览对象中显示结果。 我需要设置预览对象的innerHTML。我目前这样做是为了
我有一个完全自定义的 PHP 站点,其中包含大量数据库调用。我刚刚被注入(inject)黑客攻击。下面的这一小段代码出现在我的许多 PHP 页面中。 而且这个看起来不像 SQL 注入(inject)
我有一个 IntelliJ java 项目,我的源文件夹下有一些 HTML 文件模板。该项目已构建并输出到\target\文件夹。 HTML 文件模板也被复制到目标文件夹。 我一直试图从“到处搜索”结
我在尝试让 iCloud 与我的应用程序一起工作时遇到了一些麻烦。我尝试按照 Tim Roadley 的示例 here ,但每当通过 Xcode 启动应用程序时,仍然会显示下面的日志(同步确实可以短暂
我是一名优秀的程序员,十分优秀!