【问题标题】:How to convert Array of Struct to List Realm?如何将结构数组转换为列表领域?
【发布时间】:2021-03-28 13:57:16
【问题描述】:

我想将 Array 从 struct 转换为 List Realm。

static func mapGenreResponsetoGenreEntity( input genre: [GenreModel]) -> List {
    var list = List<GenreEntity>()
    
    return  genre.map { result in
        let newGenre =  GenreEntity()
        newGenre.gamesCount = result.gamesCount ?? 0
        newGenre.id = result.id ?? 0
        newGenre.imageBackground = result.imageBackground ?? "Unknown"
        newGenre.name = result.name ?? "Unknown"
        newGenre.slug = result.slug ?? "Unknown"
  
        list.append(newGenre)
  
        return list
    }
}

类型是

struct GenreModel: Codable {
  let gamesCount : Int?
  let id : Int?
  let imageBackground : String?
  let name : String?
  let slug : String?
}

如何从数组类型(结构)转换为列表领域,即 GenreEntity?

【问题讨论】:

  • 请不要在您的问题中包含图片或链接。将代码和结构作为文本包含在内,以便我们可以在复制/粘贴的答案中使用它们。见images and links are evil。图片和链接不可搜索,因此可能对未来的读者没有用处。

标签: swift realm


【解决方案1】:

这应该只是将新的 GenreEntity 对象添加到数组中,然后在完成后返回整个数组。

应该这样做

func convertToList(genreArray: [GenreClass]) -> List<GenreEntityRealmModel> {
    let genreEntityList = List<GenreEntityRealmModel>()
    genreArray.forEach { model in
        let genreEntity = GenreEntity()
        genreEntity.gamesCount = model.gamesCount
        genreEntityList.append(genreEntity)
    }
    return genreEntityList
}

【讨论】:

  • @amaulana 很高兴为您提供帮助。我还格式化了您问题中的代码以使其可读。提问时编辑器中有格式化工具 - 格式化代码的方括号 {} 确实有助于保持代码排列整齐。
  • @amaulana 也是一个快速的技巧是做Ctrl + i。这会重新缩进您的代码。
  • 您能说一下如何将 List 转换为 [Int] 吗?尝试了很多答案,但仍然找不到解决方案:(
  • @Abrcd18 您可能不想不需要这样做。将领域对象保留为领域对象比将它们转换为 swift 数组有一些好处。我可以问你为什么想要/需要这样做吗?您可以这样做 Array(your realm list) 但同样,这可能不是最佳选择,具体取决于用例。
  • @Abrcd18 很难诊断 cmets 中的问题。这段代码Array(your realm list) 在 100% 的时间里有效,并将一个领域列表转换为一个数组。但是,这样做有很多缺点。最好创建一个带有最小难度示例的问题,并解释您正在尝试做什么。这样做,在这里链接它,我们会看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多