1

在使用 CKFetchRecordChangesOperation 获取记录时,在 iOS 9 设备(或 macOS 10.11)上使用 Swift 3 访问 CloudKit 上的同步资产的 CKAsset fileURL 属性会崩溃并出现错误URL._unconditionallyBridgeFromObjectiveC(NSURL?) -> URL ().

我检查了 CloudKit Dashboard 上的记录,它的资产值设置正确。在 iOS 10 或 macOS 10.12 上,它按预期工作。

CKAsset 对象上的 iOS 10 和 iOS 9 之间的区别在于,在 iOS 10 上,我的资产有一个路径值path=~/Library/Caches/CloudKit/.../Assets/...,而 iOS 9 对象中缺少该值。

更新:使用 CKAsset 上的 Obj-C 类别从 fileURL 获取图像修复了崩溃,但不是问题,fileURL 仍然为零并且无法同步工作。

更新 2:一位 Apple 工程师向我证实这是一个 iOS 9 SDK 错误,具有 fileURL 值的解决方法是再次单独获取每条记录,而不使用操作。

4

0 回答 0