gpt4 book ai didi

ios - 将初始化程序添加到 View Controller 会导致 viewDidLoad 中的 socket 为零

转载 作者:行者123 更新时间:2023-11-30 12:54:20 25 4
gpt4 key购买 nike

我有一个 View Controller ,如下所示:

   class TutorialPageViewController: UIViewController, UIPageViewControllerDelegate
{
@IBOutlet weak var pageControl: UIPageControl!
var tutorialCategory = TutorialCategory.enableShareContact

override func viewDidLoad()
{
super.viewDidLoad()
self.pageViewController.dataSource = self
self.pageViewController.delegate = self
pageControl.numberOfPages = 5

...

这运行没有问题,但是在添加初始化程序后,viewDidLoad 中的 pageControl 导出现在为零,从而导致异常。这是添加的初始值设定项:

init(tutorialCategory: TutorialCategory)
{
super.init(nibName: nil, bundle: nil)
self.tutorialCategory = tutorialCategory
}

convenience required init(coder aDecoder: NSCoder)
{
self.init(tutorialCategory: TutorialCategory.enableShareContact)
}

为什么添加初始化程序会导致 IBOutlet 现在变为 nil,我该如何解决这个问题?

(我尝试在 viewDidLoad 中添加对 VC View 的调用,以尝试强制加载 socket ,但没有效果)

最佳答案

因为 socket 是由 super.init(coder aDecoder: NSCoder) 设置的,您不再调用它。

您可能想要:

required init(coder aDecoder: NSCoder) {
self.tutorialCategory = .enableShareContact
super.init(coder: aDecoder)
}

不要为了方便而重写它。

关于ios - 将初始化程序添加到 View Controller 会导致 viewDidLoad 中的 socket 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40599690/

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