标签: ckasset

如何在CloudKit中存储大图像?

我试图将图片上传到CloudKit并存储为NSData,但是使用相机拍摄的相对较大的图片,我收到此错误:

Error saving record <CKRecordID: 0x15998770; 04359DFA-8370-4000-9F53-5694FC53FA9C:(_defaultZone:__defaultOwner__)> to server: record too large id=04359DFA-8370-4000-9F53-5694FC53FA9C of type UserSetting
Run Code Online (Sandbox Code Playgroud)

可以存储的数据的最大大小是CloudKit多少?

如何存储用相机拍摄的大图像CloudKit

我尝试了两个图像,并绘制了它们的大小.

let d = UIImagePNGRepresentation(image)
println("d.length: \(d.length)")
Run Code Online (Sandbox Code Playgroud)
  • d.length: 55482 < - 工作
  • d.length: 17614327 < - 不起作用

ios cloudkit ckasset

5
推荐指数
1
解决办法
1548
查看次数

服务器记录中的CKAsset不包含fileURL,甚至无法检查nil

当我使用保存策略保存包含CKAsset(只是 JPG 图像)的记录时,我正在测试同步冲突。我收到错误。这会返回用于解决冲突的有用信息,包括我尝试保存的信息以及记录的当前服务器版本。第一个在,第二个在。CKModifyRecordsOperation.IfServerRecordUnchangedCKErrorCode.ServerRecordChangedCKErrorCKRecorderror.userInfo[CKRecordChangedErrorClientRecordKey]error.userInfo[CKRecordChangedErrorServerRecordKey]

我的问题是我尝试使用以下代码访问服务器记录的 CKAsset:

if let photoAsset = rec["myPhoto"] as? CKAsset {
  print("PhotoAsset.fileURL: \(photoAsset.fileURL)")  // BAD_ACCESS ERROR HERE
  self.myPartner.photo = NSData(contentsOfURL: photoAsset.fileURL)
}
Run Code Online (Sandbox Code Playgroud)

我不明白这怎么可能。但经过进一步调查,我打印出了客户端和服务器 CKRecords,而服务器缺少“路径”属性。

客户端 CKAsset...myPhoto (已修改)-> CKAsset:0x7b960d90;路径=~/tmp/BF185B2C-7A39-4730-9530-9797E843243A照片,大小=373959,uploadRank=0,uploadReceipt=A92Eg1qoyPG7yrg3,UUID=3C2D5DC8-4FF5-4A81-853B-395FC1C59862,referenceSignature=<012 fd149 200fc600 617e3907 88763e3e 5002abbf 5b> 、flags=已上传、wrappedEncryptionKey=、签名=<0134a297 38d52f5f 9275bfba fce5b1a8 3d6b9692 d3>

服务器 CKAsset...myPhoto = CKAsset: 0x7be700d0; ReferenceSignature=<015337bd 84409893 7c014f46 36248d27 ce911dc3 7a>,大小=373959,uploadRank=0,UUID=DF5D2EB4-033C-49A2-AF52-6055B5A44106,wrappedEncryptionKey=<767e7cfd d1e62 110 32119ee9 f6f026b3 5bcf0cc3 8053a4de>,签名=<0134a297 38d52f5f 9275bfba fce5b1a8 3d6b9692 d3>

请注意,path=~/tmp/C706423B-A3E8-4051-A9B3-483C718BFBF5photo服务器中缺少什么?谁能解释一下吗?为了解决这个问题,我尝试避免接触服务器记录中的 CKAsset。我希望至少能够检查是否为零。我想把它放在那里以防对其他人有帮助。

swift cloudkit ckasset ckerror

5
推荐指数
1
解决办法
345
查看次数

好奇CKAsset的fileUrl会不会随时间变化?

我也在客户端和 CKAsset 的 fileUrl 上缓存 CKRecord。fileUrl 可以不时更改吗?资产/数据本身没有变化。

ios cloudkit ckasset

4
推荐指数
1
解决办法
638
查看次数

使用 Cloudkit Assets 作为 UIimage

我在 CloudKit 中保存了图像作为资产。每个记录还有其他属性。我可以收集记录并使用其他属性,但我无法在我的 ImageView 中使用资产。我是 Swift 编程的新手,因此我收到的错误没有任何意义。

let container = CKContainer.default()
let publicDB = container.publicCloudDatabase    

let query1 = CKQuery(recordType: "movieArray", predicate: predicate2)
    publicDB.perform(query1, inZoneWith: nil) {(results:[CKRecord]?, error:Error?) in
        if error != nil {
            DispatchQueue.main.async {
                print("Cloud Query Error - Fetch Establishments: \(String(describing: error))")
            }
            return
        }
        for record in results! {
            DispatchQueue.main.async {
                let asset = record["myImageKey"] as? CKAsset
                let data = NSData(contentsOf: (asset?.fileURL)!)
                let image = UIImage(data: data! as Data)
                print("Test")
                self.detailImage.image = image
            }
            self.movieCast.text = record.object(forKey: "Actors") …
Run Code Online (Sandbox Code Playgroud)

swift cloudkit ckquery ckasset

3
推荐指数
1
解决办法
747
查看次数

所有CKAsset都可以在所有设备上使用?

当我保存CKAsset到服务器时,它是否可以在所有设备上使用?如果在某个设备上我不需要其中一个资产怎么办?那里也会占用空间吗?

在此输入图像描述

ios cloudkit ckasset

2
推荐指数
1
解决办法
134
查看次数

如何有效使用 CloudKit 每日传输限制 25mb

我正在创建一个高度面向图片的应用程序,最终可能会使用很多 ckassets。但我读到每个用户的每日数据传输有 25mb 的限制。我的问题是这些数据可以转移吗?如果一个用户使用 0,那么其他人可以使用 50?我觉得 25mb 的数据传输限制似乎很小,因为一张图片是 100k,所以每天最多只能播放 250 张图片。这似乎是一个如此严重的限制。谢谢你。

ios cloudkit ckasset

2
推荐指数
1
解决办法
745
查看次数

单个CKRecord中是否存在CKAsset数组的问题?

我写的应用程序将让人们存储几张照片,并将它们与一个对象相关联.

我以为我会使用CloudKit来存储这些图像,就像CKAssets一样.

在CloudKit中,除了其他属性列表类型之外,我还可以创建一个CKAsset,并将文件附加到它(在我的例子中是一个JPEG).我还可以附加任何这些类型的NSArray,包括CKAsset.

我的用户可能会为每个对象发送5张图片,或者可能是30 ...谁知道.

只是想知道是否有人遇到过这样的情况,并且看到了这种方法的缺点.(例如,为每个图像创建单独的CKRecords,并添加对另一个CKRecord的引用).

ios cloudkit ckrecord ckasset

1
推荐指数
1
解决办法
326
查看次数

标签 统计

ckasset ×7

cloudkit ×7

ios ×5

swift ×2

ckerror ×1

ckquery ×1

ckrecord ×1