5

假设我的 CloudKit 数据库中有 2 个实体:

- Album
  - (NSString) title

- Photo
  - (NSString) name
  - (CKRefrence) album

照片有一个相册的 CKReference。这意味着 1 个相册可以包含许多照片(如预期的那样)。

我有一个屏幕,我想在其中显示所有相册,以及每个相册中有多少张照片。查询此问题的最佳方法是什么?如果我现在查询相册,每张相册对它的照片一无所知。

4

2 回答 2

5

对于每个专辑对象 anAlbum,您将形成谓词并查询照片记录类型,如下所示:

let predicate = NSPredicate(format: "album == %@", anAlbum)
let query = CKQuery(recordType: "Photo", predicate: predicate)

在 completionHandler 中,您可以获得结果数组的计数,这将是属于某个相册的照片的数量。

于 2014-07-16T22:35:39.210 回答
2

CloudKit 不应该用作模型层,它只是连接框架,它为您提供数据库。您可以使用 CoreData 作为模型层来解决您的任务。创建相册实体,该实体与照片实体具有一对多关系,照片实体与相册具有一对一关系。

然后先检索所有专辑,并将每条记录映射到 CoreData 中对应的专辑实体。然后获取所有照片,将它们映射到 CoreData 中的 Photo 实体,并为每张照片匹配 CoreData 中相应的相册实体。

于 2014-07-17T01:12:39.637 回答