我有一个用Swift 3和Xcode 9编写的现有代码库,由于代码内的构建错误,我无法迁移到Xcode 10和Swift 4.2。
我现在遇到的问题是:
“表达类型'@lvalue CGRect'是模棱两可的,没有更多上下文”
我在代码的3个不同区域中遇到此错误。第四个是相关的,但不同之处在于:
“表达类型'((CGSize)-> CGSize'是模棱两可的,没有更多上下文”)
我尝试更改表达式中的所有值以显式使用数据类型CGFloat来消除所有推断出的数据类型错误,但这仍然无法解决问题。
override func sizeThatFits(_ size: CGSize) -> CGSize {
let adjustedHeight = 8.0 + titleLabel.frame.height + 2.0 + underlineView.frame.height
adjustedHeight += 16.0 + mapImageView.frame.height + 16.0
return CGSize(width: bounds.width, height: adjustedHeight)
}
override func sizeThatFits(_ size: CGSize) -> CGSize {
let adjustedHeight = 10.0 + titleLabel.frame.height + 15.0 + daysRoundedView.frame.height
adjustedHeight += daysTextLabel.frame.height + 10.0 + logoImageView.frame.height + 20.0
return CGSize(width: size.width, height: adjustedHeight)
}
override func sizeThatFits(_ size: CGSize) -> CGSize {
let adjustedHeight = 8.0 + titleLabel.frame.height + 2.0
adjustedHeight += underlineView.frame.height + 16.0 + flyerImageView.frame.height + 16.0
return CGSize(width: bounds.width, height: adjustedHeight)
}
override func sizeThatFits(_ size: CGSize) -> CGSize {
let adjustedHeight = 8.0 + titleLabel.frame.height + 2.0 + underlineView.frame.height + 16.0
adjustedHeight += descriptionTextView.sizeThatFits(CGSize(width: size.width - 40, height: size.height)).height + 16.0
return CGSize(width: bounds.width, height: adjustedHeight)
}
问题出在AdjustedHeight变量上。我不确定在Swift 4.2中是否为此使用了不同的函数或语法,但似乎无法修复此错误。
答案 0 :(得分:1)
问题之一是adjustedHeight
是一个让步,但是在下一行使用+=
运算符对其进行了修改。将adjustedHeight
更改为var后,问题是否解决?