我更新到Xcode 8 beta 5,现在从继承自UIView的类中得到以下错误:
Method does not override any method from its superclass
override public func intrinsicContentSize() -> CGSize
{
...
}
有解决方法吗?
答案 0 :(得分:53)
请检查the latest reference。 (您可以轻松找到它只是在Apple's developer site的搜索栏中添加“intrinsicContentSize”一词。)
声明
var intrinsicContentSize: CGSize { get }
intrinsicContentSize
已成为计算属性,因此您需要以这种方式覆盖它:
override open var intrinsicContentSize: CGSize {
get {
//...
return someCGSize
}
}
或者简单地说:
override open var intrinsicContentSize: CGSize {
//...
return someCGSize
}
答案 1 :(得分:7)
在从一个版本的Xcode转换到另一个版本时,有不同的方法可以找出代码不再编译的原因。以下是intrinsicContentSize
的一些资源:
intrinsicContentSize
。intrinsicContentSize
。intrinsicContentSize
的实例(快捷方式: cmd + ˚F)。intrinsicContentSize
(路径:帮助&gt; 文档和API参考< / kbd>,快捷方式: shift + cmd + 0 )。UIView
初始值设定项(例如,UIView()
),选择跳转到定义,然后搜索{ {1}}。这些搜索将向您显示,使用Swift 3和iOS 10的intrinsicContentSize
不再是一种方法,而是具有以下声明的intrinsicContentSize
的计算属性:
UIView
因此,您必须使用以下代码段替换var intrinsicContentSize: CGSize { get }
方法实现:
intrinsicContentSize()