Ios CloudKit-giving“;“未找到资产文件”;错误

Ios CloudKit-giving“;“未找到资产文件”;错误,ios,objective-c,swift,cloudkit,ckasset,Ios,Objective C,Swift,Cloudkit,Ckasset,我正在使用此代码上载资产,给定路径: func uploadFile(filePath: String) { let fileURL = NSURL(fileURLWithPath: filePath) let asset = CKAsset(fileURL: fileURL) let assetRecord = CKRecord(recordType: CloudManager.mediaRecordTypeName()) assetRecord.setObj

我正在使用此代码上载资产,给定路径:

func uploadFile(filePath: String) {
    let fileURL = NSURL(fileURLWithPath: filePath)
    let asset = CKAsset(fileURL: fileURL)

    let assetRecord = CKRecord(recordType: CloudManager.mediaRecordTypeName())
    assetRecord.setObject(asset, forKey: CloudManager.mediaAssetKey())

    println("asset before: \(asset)")
    println("asset file url before: \(asset.fileURL)")

    CKContainer.defaultContainer().publicCloudDatabase.saveRecord(assetRecord) {
            (record: CKRecord?, error: NSError?) -> Void in
            if record == nil || error != nil {
                println("error: \(error)")
                return
            }

        let asset = record!.objectForKey(CloudManager.mediaAssetKey()) as! CKAsset?

    }
}
我知道我的路径指向一个现有文件-当它使用
UIImage(contentsOfFile:filePath)
访问该文件时,它会工作。路径如下所示:

/var/mobile/Containers/Data/Application/2491A1A6-55C7-4236-B0DA-FEA894799DF2/Documents/MediaCache/85CDCF7C-9DFF-40E8-A8F4-B60F0157DA98.jpg

所以我在这个函数中使用了相同的文件路径,下面是我的日志:

asset before: <CKAsset: 0x1701830c0; path="/var/mobile/Containers/Data/Application/2491A1A6-55C7-4236-B0DA-FEA894799DF2/Documents/MediaCache/85CDCF7C-9DFF-40E8-A8F4-B60F0157DA98.jpg", UUID=0DC9CE7B-25B7-4D3D-967E-6544ABE5D552>

asset file url before: file:///var/mobile/Containers/Data/Application/2491A1A6-55C7-4236-B0DA-FEA894799DF2/Documents/MediaCache/85CDCF7C-9DFF-40E8-A8F4-B60F0157DA98.jpg

error: Optional(<CKError 0x170050740: "Asset File Not Found" (16/3002); "Can't read the file">)
之前的资产:
之前的资产文件url:file:///var/mobile/Containers/Data/Application/2491A1A6-55C7-4236-B0DA-FEA894799DF2/Documents/MediaCache/85CDCF7C-9DFF-40E8-A8F4-B60F0157DA98.jpg
错误:可选()
如果我修改传入的文件路径,指向一个实际上不存在的文件,它会给出相同的结果。因此,它似乎无法找到该文件。因为我知道文件存在,所以可能是我在文件路径中传递的格式


如果我注释掉
assetRecord.setObject(asset
行,它成功了,没有任何错误,当然,
记录!.objectForKey
为零。

这可能是由于我在测试此方法时手动输入文件路径造成的。似乎如果我不触摸它,并让文档路径在代码中创建,它就可以工作。可能是斜杠或其他原因造成的事情?你找到问题的根源了吗?我现在在我的日志中看到了相同的错误消息…这可能是因为我在测试此方法时手动输入文件路径造成的。似乎如果我不触摸它,并让文档路径以代码创建,它就可以工作。可能是因为斜杠或其他什么的问题?是吗你找到问题的根源了吗?我现在在我的日志中看到了相同的错误消息。。。