EXC_BAD_INSTRUCTION при добавлении ограничения - PullRequest
1 голос
/ 22 апреля 2019

Мой вид панели инструментов работал нормально, пока я не попытался удалить раскадровку из проекта. Я создал новую ветку, используя git, начал удалять раскадровки и столкнулся с этой проблемой. Вот основная настройка того, как я добираюсь до экрана приборной панели.

// AppDelegate.swift 

window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = MainTabController()
// MainTabController
let dashboard = DashboardViewController()
let dashboardNavController = UINavigationController(rootViewController: dashboard)
dashboardNavController.tabBarItem.title = "Dashboard"
viewControllers  = [dashboardNavController]
// DashboardViewController.swift

import UIKit

class DashboardViewController: UIViewController {
    var dashboardTitle: UILabel {
        let label = UILabel()
        label.text = "Defatul Dashboard Title"
        label.translatesAutoresizingMaskIntoConstraints = false

        return label
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor.white
        view.addSubview(dashboardTitle)

        dashboardTitle.topAnchor.constraint(equalTo: view.topAnchor).isActive = true <-- Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
    }
}

Если я не добавляю ограничение, приложение работает нормально, как только я добавляю ограничение, я получаю сообщение об ошибке. Есть идеи, почему?

enter image description here

1 Ответ

4 голосов
/ 22 апреля 2019

Проблема в том, что вы создаете новую метку каждый раз, когда звоните dashboardTitle.Вам нужно изменить dashboardTitle на:

lazy var dashboardTitle: UILabel = {
    let label = UILabel()
    label.text = "Defatul Dashboard Title"
    label.translatesAutoresizingMaskIntoConstraints = false

    return label
}()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...