- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在将 NSFileWrapper 文档与 iCloud 同步时遇到问题。我能够创建我的包装器并将其保存到我无处不在的容器中。
当我尝试从创建它的设备读取它时,它起作用了。当我尝试从另一台从 iCloud 获取它的设备读取它时,它崩溃了。
部分代码:
这个函数添加一个带有 NSString 的包装器容器
- (void) addNSString:(NSString*)_string toFileWrapper:(NSFileWrapper*)_wrapper forKey:(NSString*)_key {
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:_string];
if(data) {
[_wrapper addRegularFileWithContents:data preferredFilename:_key];
}
然后我是这样解码的:
- (id) unarchiveObjectFromWrappers:(NSDictionary*)_wrappers withKey:(NSString*)_key {
id value = nil;
NSFileWrapper *wrapper = [_wrappers valueForKey:_key];
if(wrapper) {
NSData *data = [wrapper regularFileContents];
if(data) {
value = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
}
return value;
}
解码部分在一个设备上工作,而不在其他设备上工作(当 NSKeyedUnarchiver 尝试从 NSData 取消存档时,EXC_BAD_ACCESS。NSData 看起来不错,它具有适当的长度和所有内容,但是当我尝试记录其数据时,例如它崩溃)。
我的猜测是 NSFileWrapper 不会下载它的全部内容,只会下载它的结构,我必须做一些事情才能让它可用。但我不知道是什么。
有什么想法吗?
========
编辑:
NSURLUbiquitousItemIsDownloadedKey 说文件已下载,但如果我尝试将它复制到沙箱,它会失败并出现此错误:“操作无法完成。文件描述符错误”
所以文件要么没有正确上传到 iCloud,要么没有正确下载...
最佳答案
这也把我逼疯了。解决方案相当简单,但 Apple 完全没有记录。您必须专门下载该文件。只有文件包装器会自动下载,但不会自动下载其内容。这就是支票显示文件存在的原因。
在复制文件之前,调用如下:
[[NSFileManager defaultManager]startDownloadingUbiquitousItemAtURL:cloudURL error:nil];
相关:Cannot sync simple text file with iCloud (bad file descriptor)
关于ios - NSFileWrapper 在来自 iCloud 时失败并在本地目录中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14663625/
我是 icloud 新手。我正在开发一个应用程序。在我的应用程序中,我想将图片备份到 iCloud 服务器。但我不想将这些图像传回我的 iPhone。 这可能吗?怎么可能呢。我是 iCloud 新手。
我对 iCloud 很陌生——我制作了一个容器,然后在其中创建了一个记录类型。然后部署到生产。 好吧,我不再想要这种记录类型,所以我尝试删除它。 Invalid attempt to delete a
我已经在 icloud 中复制了我的 sqlite 数据库,我想使用该 icloud sqlite 数据库作为插入/更新和删除。我为它编写了代码,但它在其他设备上不起作用(我有 2 个设备)。意味着当
当本地商店更改为 iCloud 商店时,我正在尝试接收消息。 这是一个关键事件。所以我的用例是一个新设备在从一个空的商店开始后接收 iCloud 商店。我想通知 View 更新接收到的内容。 我像这样
我试图让 iCloud 中的键值存储正常工作,但我遇到了一个奇怪的问题。 我使用以下方式存储数据: [[NSUbiquitousKeyValueStore defaultStore] setObjec
我遇到了有关 iCloud 同步过程的问题。 当用户决定激活 iCloud 时,本地存储在应用程序沙箱中的文档将移动到本地 iCloud 目录,然后删除沙箱中的文件。这是通过 setUbiquitou
我对 iCloud 的想法有点纠结,并发布了一个更一般的问题 here .我最大的问题是决定是否应该停止将用户数据放在应用程序沙箱中的旧文档文件夹中。为了说明我的问题: docs据我所知,不要给出答案
嗨,我开发了一个 iPhone 应用程序,我将 NSMutableArray 存储到 NSUserDefaults 中。但是现在我想将相同的 NSMutableArray/NSUserDefaults
有没有办法访问特定的 PHAsset在多个设备上唯一的 iCloud 相册中? 我编写了一个简单的应用程序,其中列出了缩略图和 .localIdentifier s 来自 iCloud 共享相册,并且
我正在尝试将应用程序转移到另一个 Apple ID。当我这样做时,我收到一条错误消息,指出该应用程序无法传输,因为该应用程序启用了 iCloud。 由于这不是故意的,我尝试禁用 iCloud 并向应用
我的 iPhone 应用程序的文档文件夹与文件应用程序上的 iCloud 位置存在问题。我的应用程序的文档文件夹出现在文件应用程序的设备端,但没有出现在文件应用程序的 iCloud 位置。iCloud
我一直在为客户运行一个流程,该流程涉及通过在 ruby 脚本中进行 https GET 调用,从 me.com 获取他们公开可用的日历文件,然后将 .ics 文件中的数据转换为 html,然后将其
我在 App Store 中有一个简单的应用程序,它是 UITableView由用户填写一些 UITextField 填充s 在模态调用的 View 中。用户按下保存,所有内容都保存到 Core Da
我有点困惑。每次用户单击“备份”时,我都使用 iCloud Drive 存储内部数据的备份。这不像我想的那样工作,因为有时它只是不会在设备和单击恢复的用户之间同步得到他们的旧备份。 现在我已经阅读了有
我有一个 iOS 应用程序,其中一半用户希望使用 iCloud 在设备之间同步一些数据,而另一半则不需要。出于这个原因,我将核心数据(启用 iCloud)的 sqlite 文件放在应用程序文档目录中。
我正在为 friend 的企业构建一个 i0S 8 iPad 应用程序,以帮助他和他的员工在设备之间同步评估数据。换句话说,如果一名员工创建了评估,则运行该应用程序的所有其他员工都应该可以访问该评估。
我正在创建一个应用程序(目前仅适用于 iPhone),它需要一种自动备份数据的方法,并让用户能够从不同的设备访问他们的数据。数据可能会在一段时间后达到一致的大小,因为它还将包括照片等。 我目前正在考虑
我非常接近在我的应用程序中完成 iCloud 和核心数据的实现。这是一款仅限 iOS 7 的应用程序。 我在应用程序中为用户提供一个选项,以 UISwitch 的形式说出打开或关闭 iCloud。该应
我正在开发一个使用核心数据的应用程序,因为我认为我可以使用核心数据为 iCloud 提供的同步功能在 iPad 和 iPhone 之间同步数据,现在它已被弃用。 我遇到了 CloudKit,但它主要用
应用程序在 iCloud 中存储数据似乎有几种不同的方式(iCloud Drive 文档、带 iCloud 同步的核心数据、CloudKit 私有(private)数据库、键值对等),但我不确定是否仅
我是一名优秀的程序员,十分优秀!