Swift 3 /如何使用警告结果“呼叫结果未使用”

时间:2016-10-20 17:42:33

标签: ios swift

在标记为重复之前:我已经研究过并发现了很多关于这个主题的主题,但是所有主题都通过使用_ =来消除警告来解决它。我不想让警告沉默。我想使用结果!

我正在尝试将分叉框架转换为Swift 3并且遇到警告:

  

通话结果未使用

以下代码:

func setupViews() {
    contentView.addSubview(imageView)
    imageView.autoLayoutToSuperview()   // here, result of autoLayoutToSuperview() is unused
    imageView.contentMode = .scaleAspectFill
    imageView.clipsToBounds = true
    imageView.backgroundColor = UIColor.white
}

autoLayouttoSuperview是该Framework的一个函数,它返回一个NSLayoutConstraint的数组。

func autoLayoutToSuperview(_ attributes: [NSLayoutAttribute] = [.left, .right, .top, .bottom], inset: CGFloat = 0) -> [NSLayoutConstraint] {

    var constraints: [NSLayoutConstraint] = []
    translatesAutoresizingMaskIntoConstraints = false

    for attribute in attributes {

        var constant = inset
        switch attribute {
        case .right:
            constant = -inset
        case .bottom:
            constant = -inset
        default:
            break
        }

        let constraint = NSLayoutConstraint(
            item: self,
            attribute: attribute,
            relatedBy: .equal,
            toItem: self.superview,
            attribute: attribute,
            multiplier: 1,
            constant: constant
        )
        self.superview?.addConstraint(constraint)
        constraints.append(constraint)
    }

    return constraints
}

我能够使警告静音,但由于结果不会被使用,imageView不会出现在想要的外观中。

图片图片:

enter image description here

使用它:

enter image description here

imageView外观不正确。

enter image description here

如何使用结果?非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

你可能会说:

let constraints = imageView.autoLayoutToSuperview()
NSLayoutConstraint.activate(constraints)