使用 SnapKit 库时获取 SIGABRT
Posted
技术标签:
【中文标题】使用 SnapKit 库时获取 SIGABRT【英文标题】:Getting SIGABRT when using SnapKit library 【发布时间】:2016-05-30 17:25:20 【问题描述】:我有以下代码:
// ViewController.swift
// Copypasta Keyboard
//
// Created by vroy on 5/30/16.
// Copyright © 2016 vroy. All rights reserved.
//
import UIKit
import SnapKit
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let thankYouMessage = UILabel()
thankYouMessage.text = "Thank You for Installing the Keyboard."
thankYouMessage.textAlignment = .Center
thankYouMessage.numberOfLines = 1
thankYouMessage.snp_makeConstraints (make) -> Void in
//The program crashes if either of the following two lines are uncommented.
make.top.left.right.equalTo(0)
make.height.equalTo(self.view.snp_height).multipliedBy(0.2)
self.view.addSubview(thankYouMessage)
如果两行之一:
make.top.left.right.equalTo(0)
make.height.equalTo(self.view.snp_height).multipliedBy(0.2)
执行我得到一个 SIGABRT 错误:
我使用的是 SnapKit 库版本 0.19.0
我该怎么办?
【问题讨论】:
【参考方案1】:您需要在进行约束之前添加子视图。所以把代码改成这样:
let thankYouMessage = UILabel()
thankYouMessage.text = "Thank You for Installing the Keyboard."
thankYouMessage.textAlignment = .Center
thankYouMessage.numberOfLines = 1
self.view.addSubview(thankYouMessage)
thankYouMessage.snp_makeConstraints (make) -> Void in
//The program crashes if either of the following two lines are uncommented.
make.top.left.right.equalTo(0)
make.height.equalTo(self.view.snp_height).multipliedBy(0.2)
【讨论】:
以上是关于使用 SnapKit 库时获取 SIGABRT的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 snapkit 为 UIView 声明的高度约束?