CloudKit提供“未找到资产文件”错误

时间:2015-07-22 10:47:03

标签: ios objective-c swift cloudkit ckasset

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

string

我知道我的路径指向现有文件 - 当它使用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

如果我修改传入的filePath,指向一个真正不存在的文件,它会给我相同的结果。因此看起来它找不到文件。因为我知道该文件存在,也许它是我在filePath中传递的格式。

如果我注释掉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">) 行,则会成功而没有任何错误,当然assetRecord.setObject(asset为零。

0 个答案:

没有答案