[英]How to save struct to Realm, with list of another struct
我根據本指南在結構中創建了數據持久層,但我還需要使用結構創建一些領域對象並將其添加到結構中的另一個領域對象,如數組。 我的意思是這樣的:
public struct Publisher {
public let identifier: Int
public let name: String
}
public struct Character {
public let identifier: Int
public let name: String
public let realName: String
var publisherArray: [Publisher]
}
final class PublisherObject: Object {
dynamic var identifier = 0
dynamic var name = ""
override static func primaryKey() -> String? {
return "identifier"
}
}
final class CharacterObject: Object {
dynamic var identifier = 0
dynamic var name = ""
dynamic var realName = ""
var publisherArray: List<PublisherObject>?
override static func primaryKey() -> String? {
return "identifier"
}
}
在上面的指南中,作者只添加了另一個結構體,而不是數組。 我到了這一點:
extension Character: Persistable {
public init(managedObject: CharacterObject) {
identifier = managedObject.identifier
name = managedObject.name
realName = managedObject.realName
publisherArray = managedObject.publisherArray
.compactMap(Publisher.init(managedObject:))
}
}
但我不知道,我必須在這里輸入什么:
public func managedObject() -> CharacterObject {
let character = CharacterObject()
character.identifier = identifier
character.name = name
character.realName = realName
// here must be something like that, but for array
// character.publisherArray = publisherArray.managedObject()
return character
}
謝謝大家的幫助:-)
我終於解決了我的問題:-)
public func managedObject() -> CharacterObject {
let character = CharacterObject()
character.identifier = identifier
character.name = name
character.realName = realName
publisherArray.forEach({ publisher in
character.publisherArray.append(publisher.managedObject())
})
return character
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.