gpt4 book ai didi

ios - 在基类和潜在错误中对 Outlets 使用相同的属性名称/引用

转载 作者:行者123 更新时间:2023-11-29 01:22:44 24 4
gpt4 key购买 nike

所以我有一个名为 UITabBarTopLevelViewController 的 UIViewController 基类:

class UITabBarTopLevelViewController: UIViewController {

@IBOutlet weak var uiNavItemTitle: UINavigationItem!

override func viewDidLoad() {
super.viewDidLoad()
uiNavItemTitle.titleView = CoreUtility.LogoForUINavBarGet()
// Do any additional setup after loading the view.
}

然后我有两个从我的基类继承的 UIViewControllers,它们看起来都像这样,除了第二个叫做 MyViewController2:

class MyViewController1: UITabBarTopLevelViewController {

//@IBOutlet weak var uiNavItemTitle: UINavigationItem!

override func viewDidLoad() {
super.viewDidLoad()
//uiNavItemTitle.titleView = CoreUtility.LogoForUINavBarGet()

}

我向每个子 UIViewController super View 添加一个导航栏对象,然后我按住 CTRL 键拖动并向每个 UIViewController 子类添加一个新 socket :

enter image description here

这是第二个 CTRL 拖动导出:

enter image description here

这些是不同的引用,但我可以在我的子类中注释掉 @IBOutlet weak var uiNavItemTitle: UINavigationItem! 并仅在基类 UITabBarTopLevelViewController 中引用一次,对于 MyViewController1MyViewController2

你可以看到,当我将鼠标悬停在导出圆上时,在我的基类中,它突出显示了 Story Board 中的两个 UINavigationItem:

enter image description here

我很惊讶它能起作用,它能起作用对我来说很好,因为我只需要为两个 View 的 Logo 设置一次 uiNavItemTitle.titleView。这就是我想要的,但似乎有点神奇,我可以在我的基类中一次引用多个 socket 引用,并且没有错误或崩溃。

我目前没有内存泄漏或崩溃,我的应用程序运行良好,完全按照我的意愿进行。

这会不会有任何错误?

有人可以解释这是如何工作的吗?

对于经验丰富的 Swift 开发人员来说,这是否有效?

最佳答案

这就是子类的工作原理。

您通过

在基类 UITabBarTopLevelViewController中放置了一个 UINavigationItem

uiNavItemTitle.titleView = CoreUtility.LogoForUINavBarGet()

此外,MyViewController1MyViewController2 继承自基类 UITabBarTopLevelViewController。也就是说,这些子 viewController 都一个 UINavigationItem,它继承自它们的 UITabBarTopLevelViewController

另一方面,这不是错误,更像是关于设计模式的话题。您可以将所有基本内容放入基类中,从这些类继承并在子类中实现特定细节。

HTH.

关于ios - 在基类和潜在错误中对 Outlets 使用相同的属性名称/引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34408028/

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