簡體   English   中英

核心數據中的關系作為NSSet

[英]Relationship in Core Data as NSSet

我有一個類別的實體和一個子類別的實體。 它是一對多的,因為一個類別可以有許多子類別。 我仍在努力將所有事情纏住,所以請忍受...

extension Category {
    @NSManaged var name: String?
    @NSManaged var subCategory: SubCategory?
}


extension SubCategory {
    @NSManaged var name: String?
}

然后在代碼中的其他地方(例如某些視圖控制器)進行調用

let category = NSEntityDescription.insertNewObjectForEntityForName("Category", inManagedObjectContext: self.context) as! Category
let sub = SubCategory()
sub.name = "sub1"

category.subCategory = sub

//save it

然后,當我查看實際的核心數據Sqlite db時,可以看到Category實體的ZSUBCATEGORY列填充有sub category實體的主鍵值。 我已經在數據模型中定義了關系。

我的問題是,我注意到某些關系是通過NSSet存儲的。 這樣做有什么好處嗎? 我在做錯事嗎? 對我來說,這似乎比較簡單,然后我可以做...

category.subcategory.name 

獲取子類別名稱

如果這是一對一的關系,那么確實可以做到這一點:

category.subcategory.name 

這就是您在此示例中所做的,已經定義了一對一關系。 如果要比定義多一:

extension Category {
    @NSManaged var name: String?
    @NSManaged var subCategory: NSSet?
}

這種方式將類別與子類別的數量鏈接在一起,所以如果您願意

category.subcategory.name

您怎么知道您正在訪問哪個子類別? 您將不得不遍歷set,以找到要查找的一個子類別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM