【问题标题】:How to get data from list type in the transferred object? (RealmSwift)如何从传输对象的列表类型中获取数据? (RealmSwift)
【发布时间】:2019-10-16 05:34:16
【问题描述】:

我有一个领域数据库模型对象,我将它从一个控制器传输到另一个控制器。在另一个控制器上,我需要从这个对象中获取数据,该对象存储了 List 类型的对象。我在 'cellForRowAt' 方法中需要它。

这是我的模型:

class Route: Object {

    @objc dynamic var routeImage: Data?
    @objc dynamic var routeName: String?
    @objc dynamic var numberOfPersons = 0.0
    @objc dynamic var dateOfDeparture: String?
    @objc dynamic var dateOfArrival: String?
    let placeToVisit = List<Place>()
    let person = List<Person>()
}

class Place: Object {
    @objc dynamic var placeName = ""

    convenience init(placeName: String) {
        self.init()
        self.placeName = placeName
    }
}

在我创建的第二个 VC 上:

var currentRoute: Route?

在 viewDidLoad 我设置了:

currentRoute = UserSelectedRoute.shared.selectedRoute! 

我可以从其他属性中获取数据,但不能从列表类型中获取数据。我试图实现“减少”方法,但它不起作用。它也返回列表类型。我想我需要将列表转换为结果类型,但我不知道如何从当前对象返回值? cellForRowAt image

【问题讨论】:

  • 这里没有足够的代码来理解用例。例如,这个UserSelectedRoute.shared.selectedRoute! 是什么,是单例吗?它是大写的,所以我们应该假设它不是一个类变量吗?如果它是单例,则无需“传递”该对象,因为它在整个应用程序中都可用。您能澄清一下您的要求和尝试做什么吗?
  • 是的,它是单例。另一个控制器中使用了一个对象,我需要为方法“cellForRowAt”提取它。在图片中,您可以看到我如何从 'dateOfDeparture' 和 'dateOfArrival' 获取数据 - 它是数据库模型的简单属性。但我无法从“placeToVisit”获取数据到 tableView.section 0。有一些对象,我需要显示。
  • 单例的一个用途是集中存储某些数据或功能。如果您在一个 viewController 中从该单例中获取数据,那么相同的数据将在来自该单例的任何 viewController 中可用,这意味着它不需要传递,因为它在整个应用程序中都可用。您不需要将列表“转换”为结果 - 列表作为数据源工作得很好。请不要包含代码的链接或屏幕截图 - 如果该链接中断,则问题无效。在您遇到困难的问题中包含代码(作为文本)。
  • 我会考虑未来。感谢您的建议:) 然后我有一个问题如何将列表类型中的对象放入表格部分(我需要在 secondVC 中的 cellForRow 方法中做什么以及如何做?)。 List 类型的集合存储具有“namePlace”属性的“Place”类型的对象,我需要获取这些对象并将它们放在行中。这是一个主要问题,请帮助我)
  • 听起来您在问如何访问 Realm 对象的 List 属性。查看文档Many To Many,了解在对象上实现 List 的示例。该列表的工作方式与数组非常相似,可以迭代,甚至可以通过索引直接访问对象。在您的情况下,我不知道具体问题是什么,但如果您在问题中包含您遇到问题的代码,我们可能会制定具体的答案。哦 - 例如,这适用于“let place = someRouteObject.placeToVisit[4]”

标签: ios swift xcode realm


【解决方案1】:

正如Jay 向我建议的那样,以下解决方案帮助了我:

cell.textLabel!.text = currentRoute?.placeToVisit[indexPath.row].placeName

【讨论】:

    猜你喜欢
    • 2022-08-15
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多