为什么我的iOs应用程序上没有加载我的scrollView页面?获取错误:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子代码= 0x0)

时间:2016-11-21 04:27:44

标签: ios swift uiscrollview optional-values

我正在使用codeschool教程构建应用程序,但即使我已按照确切的代码和步骤正确构建scrollView页面,它只会在iOS模拟器上显示一个空白屏幕。我做错了什么?

这是我的代码:

import UIKit

class ContactViewController: UIViewController {

    @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(scrollView)
    }

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()

        scrollView.contentSize = CGSize(width: 375, height: 800)

我收到以下错误消息:

构建应用程序时,

线程1:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子代码= 0x0),总结为状态

......其特点是:

致命错误:在展开Optional值时意外发现nil (lldb)

我经常跑这么多次。我仔细查看了现有帖子,但我是一个新手,有些人建议对代码进行更改,看起来似乎没有必要,因为我完成了教程所指示的所有内容(我认为这些内容适当QA提前)。我感谢任何人的见解!

更新。以下用户帮助确定了问题。代码本身不是问题,但只是将scrollView链接到Assistant Editor中的代码显然没有完成。即使助理编辑器中的代码旁边有一个圆圈,它实际上并未链接,或链接已被破坏。您可以通过将鼠标悬停在圆圈上来确认链接实际正在工作,这将突出显示故事板编辑器中的滚动视图蓝色。如果链接断开,则不会突出显示。

感谢大家的帮助。这里再次是最终的工作代码:

2 个答案:

答案 0 :(得分:0)

你做的一切都是正确的。在用逗号分隔的UIViewController之后添加UIScrollViewDelegate。然后执行这些步骤  1)选择scrollView并在属性检查器中勾选启用滚动和所有跳出。 2)正确设置约束(这是主要的事情) 3)在viewDidLoad

上设置此代码
scrollView.isScrollEnabled = true; 
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 200, 0)

答案 1 :(得分:0)

你的行为正确,你的滚动视图由于滚动视图背景颜色而没有看到,因为它很清楚,所以你再添加一行你的代码

@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()
    //Comment this line
  //  self.view.addSubview(scrollView)
}

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    scrollView.backgroundColor = UIColor.cyan
    scrollView.contentSize = CGSize(width: 375, height: 800)
}