gpt4 book ai didi

ios - 覆盖不同类型的变量属性

转载 作者:行者123 更新时间:2023-11-28 10:34:36 25 4
gpt4 key购买 nike

我有一个变量“children”,它只是参与者的列表。请解释一下如何将一种类型的变量覆盖为另一种类型的属性。

代码如下:

class ParticipantsListViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var participantsTableView: UITableView!

// Error on next line: Property 'children' with type '[Child]?' cannot override a property with type '[UIViewController]'
var children: [Child]?
var trackingHelper = TrackingHelper()
var modelHelper = ModelHelper.shared
}

最佳答案

问题很简单。你不能那样做。 UIViewController,您从中继承的类,将此属性锁定并锁定。您需要根据您要实现的目标为自己创建一个新的解决方案:

条件A:ChildUIViewController的子类

在这种情况下,您需要一种方法使 ParticipantsListViewController 的 subview Controller 始终符合 Child。一种方法是使用以下计算属性:

var listChildren: [Child] {
return children.filter { $0 is Child }
}

条件 B:Child 不是 UIViewController 的子类

您正在尝试覆盖系统需要存在的内容。 children 数组中的内容必须是 UIViewController 的实例或子类。很严格。

这里的解决方案很简单。以不同的方式命名属性并摆脱覆盖。当然,它不会有最好、最简单的名称 children,但就是这样。

关于ios - 覆盖不同类型的变量属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com