Сбой при доступе к свойству fileURL CKAsset в Swift 3 на iOS 9
Доступ к свойству fileURL в CKAsset с помощью Swift 3 на устройстве iOS 9 (или macOS 10.11) для синхронизированного ресурса в CloudKit завершается с ошибкой URL._unconditionallyBridgeFromObjectiveC(NSURL?) -> URL ().
когда записи выбираются с использованием CKFetchRecordChangesOperation.
Я проверил запись на CloudKit Dashboard, и для него правильно установлено значение ресурса. На iOS 10 или macOS 10.12 все работает как положено.
Разница между iOS 10 и iOS 9 на объекте CKAsset заключается в том, что на iOS 10 мой ресурс имеет значение пути path=~/Library/Caches/CloudKit/.../Assets/...
, который отсутствует в объекте iOS 9.
Обновление: использование категории Obj-C поверх CKAsset для получения изображения из fileURL устраняет сбой, но не проблему, fileURL по-прежнему равен нулю и не может иметь синхронизацию.
Обновление 2: инженер Apple подтвердил мне, что это ошибка iOS 9 SDK, и обходной путь для получения значения fileURL состоит в том, чтобы снова извлекать каждую запись отдельно, без каких-либо операций.