0
マイコアデータモデルには、ロケーションと写真の2つのエンティティがあります。コアデータ内のリレーションシップ数の検索 - Swift
ロケーションはlat、lonを格納しており、多くの写真が関連付けられています。 写真は画像をバイナリデータとして保存します。逆の関係も同様に設定されます。
特定の場所について、そのエンティティに現在関連付けられている写真があるかどうかをどのように確認できますか?
私は場所にNSManagedObjectクラスを使用していますが、すべての写真を検索することを考えましたが、それはむしろ非効率的だったようです。
class Location: NSManagedObject, MKAnnotation {
init (latitude: Double, longitude: Double, context: NSManagedObjectContext) {
if let ent = NSEntityDescription.entityForName("Location", inManagedObjectContext: context) {
super.init(entity: ent, insertIntoManagedObjectContext: context)
self.latitude = NSNumber(double: latitude)
self.longitude = NSNumber(double: longitude)
}
else {
fatalError("ERROR")
}
}
override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
}
func photoCount(context: NSManagedObjectContext) ->Int {
let fetchRequest = NSFetchRequest(entityName: "Photo")
let predicate = NSPredicate(format: "location = %@", self)
fetchRequest.predicate = predicate
??? Best Option ???
return <COUNT OF PHOTOS FOR LOCATION>
}
}