[英]Storing Custom Class type array in Coredata
我正在嘗試將自定義 class 類型數組存儲在 coredata 中。
我設置的是一個名為Node
的實體,其屬性value
string 類型, children
項類型為Transformable
。 children
屬性應該存儲一個Node
類型的數組,如下面的代碼所示。
public class Node: NSManagedObject {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Node> {
return NSFetchRequest<Node>(entityName: "Person")
}
@NSManaged public var children: [Node]?
@NSManaged public var value: String?
}
.xcdatamodel
設置:
目前應用程序崩潰並顯示錯誤消息“此解碼器將僅解碼采用 NSSecureCoding 的類。Class 'Node' 不采用它。” 所以我用字符串數組而不是節點數組嘗試了它,它似乎工作。
我猜需要做一些額外的事情來存儲自定義數組類型。
聽起來您想要一個遞歸數據結構,其中每個節點可以有許多其他節點作為子節點,另一個節點作為其父節點。 這就是 CoreData 關系的用途。
在您的Node
實體下:
Node
添加類型為“To Many”的關系children
項。 沒有逆。parent
節點與目標Node
,將其逆設置為children
節點children
關系並將其逆設置parent
children
使用“Cascade”,這意味着如果你刪除一個父級,它的所有子級也會被刪除。 “無效”對parent
有意義,這意味着如果您刪除一個孩子,它只會刪除父母與該孩子的連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.