我在我的应用程序中使用CloudKit作为一种远程保存数据的方式。我的一条记录有一个包含图像的CKAsset属性。当我获取记录时,我意识到完成查询需要花费很多时间。经过多次测试,我得出结论,当您查询记录时,CloutKit会下载带有记录对象的整个Assets文件。因此,当您从记录对象获取Assets并请求它的fileURL时,它会为您提供本地文件路径URL而不是HTTP类型的URL。这对我来说是个问题,因为在查询结束之前,您必须让用户等待很长时间才能下载整个记录(及其相关图像)。来自Parse背景,Parse过去常常为您提供HTTPURL,并且查询速度足够快,可以在异步加载图像的同时加
我有一些数据,比如图片,作为二进制数据存储在核心数据中,并标记为“允许外部存储”。我想将此数据写入CloudKit。是否可以获取此数据的URL并将其传递给CKAsset,或者以某种方式将此数据转换为CKAsset而无需将此数据重复写入某些临时文件?谢谢。 最佳答案 不支持直接访问外部二进制数据,也没有相应的API。非正式地不难弄清楚文件存储在哪个目录中,但这没有用,因为文件名是UUID,没有记录的方法将托管对象链接到UUID,因此您不知道要使用哪个文件。选项是允许外部存储,因此不能保证外部文件存在。有些实例可能不使用外部存储。我不确
我正在使用CloudKit下载CoreML(机器学习)模型。它们每个大约90MB。我有公共(public)数据库和带有一种自定义“ML”记录类型的默认区域。我通过id查询这个“ML”,在完成block上得到响应需要一分多钟(应该是几秒钟的事)。我试过生产环境,设置服务质量,以及用不同的方式查询相同的结果(非常慢)。我想知道我是否遗漏了什么,或者是否有任何其他更快地下载ML模型的方法?这是我当前的代码:letarrayPredicate=NSPredicate(format:"id==%@",id)letquery=CKQuery(recordType:"ML",predicate:ar
当我使用CKModifyRecordsOperation保存包含CKAsset的记录(只是一个JPG图像)时,我正在测试同步冲突,保存策略为.IfServerRecordUnchanged。我收到错误CKErrorCode.ServerRecordChanged。此CKError返回对解决冲突有用的信息,包括我尝试保存的CKRecord和记录的当前服务器版本。第一个在error.userInfo[CKRecordChangedErrorClientRecordKey]中,第二个在error.userInfo[CKRecordChangedErrorServerRecordKey]中。我
我在cloudkit数据库中有一个可选图像(已检查数据库,如果我在测试中添加它,图像就在那里)。我创建了一个类,将记录字段初始化为我在tableview中使用的变量。我也有一个自定义单元格。但图像不会显示在我的自定义tableview单元格中。我不知道tableview图像中的可选图像是否会导致问题,或者我在cloudkit中的代码/设置是否存在问题。非常感谢任何帮助,因为我已经被困了一个多星期,网上几乎没有关于此的信息。这是我的类(class)代码:varfeedResults=[UserPosts]()classUserPosts{varrecord:CKRecordvardesc