やりたいこと
オブジェクト'Idea'と'Category'を1対多で関連付けています。
IdeaをCategoryでfilterかけて取得する際に、関連づいていないIdeaだけ取得したいのですが、取得方法が分かりません。
どなたかアドバイス頂けないでしょうか。
swift
1//categoryIdは'1'から登録する 2//新規追加は最大連番+1を登録する 3class Category: Base { 4 @objc dynamic var categoryId:Int = 0 5 @objc dynamic var categoryName = "" 6 let ideas = List<Idea>() 7 8 override class func primaryKey() -> String { 9 return "categoryId" 10 } 11 12} 13 14class Idea: Base { 15 @objc dynamic var ideaId: String? = "IID" + NSUUID().uuidString 16 @objc dynamic var ideaName: String? = "" 17 //@objc dynamic var categoryName: String? = "" 18 @objc dynamic var details: String? = "" 19 let category = LinkingObjects(fromType: Category.self, property: "ideas") 20 21 override class func primaryKey() -> String { 22 return "ideaId" 23 } 24} 25/* 26 check new idea name already exists 27 @param ideaname : String 28 @param category : Category 29 @return : Bool 30 */ 31 func checkIncludeIdeaName(ideaname: String, category: Category?) -> Bool { 32 var categoryParam = [0] 33 if category != nil { 34 categoryParam = [category!.categoryId] 35 } 36 37 //Categoryと関連づいたIdeaは取得できるが、関連のない(ex:categoryId = 0)Ideaは取得出来ない 38 let ideaList = realm.objects(Idea.self)!.filter("ideaName == %@", ideaname).filter("ANY category.categoryId IN %@", categoryParam).value(forKey: "ideaName") as! Array<Any> 39 40 if ideaList.count > 0 { 41 return false 42 } 43 return true 44 } 45
補足情報
swift 4.2
xcode 10.1
RealmSwift 3.13.1
あなたの回答
tips
プレビュー