Gol*_*Joe 23 xcode uiview swift
我更新到Xcode 8 beta 5,现在从继承自UIView的类中获得以下错误:
Method does not override any method from its superclass
override public func intrinsicContentSize() -> CGSize
{
...
}
Run Code Online (Sandbox Code Playgroud)
有解决方法吗?
OOP*_*Per 55
请查看最新参考.(您可以轻松地在Apple开发者网站的搜索栏中找到"intrinsicContentSize"一词.)
宣言
Run Code Online (Sandbox Code Playgroud)var intrinsicContentSize: CGSize { get }
intrinsicContentSize 已成为计算属性,因此您需要以这种方式覆盖它:
override open var intrinsicContentSize: CGSize {
get {
//...
return someCGSize
}
}
Run Code Online (Sandbox Code Playgroud)
或者干脆:
override open var intrinsicContentSize: CGSize {
//...
return someCGSize
}
Run Code Online (Sandbox Code Playgroud)
在从一个版本的Xcode转换到另一个版本时,有不同的方法可以找出代码不再编译的原因.以下是一些资源intrinsicContentSize:
intrinsicContentSize从developer.apple.com搜索.intrinsicContentSize直接从Apple Developer API参考页面搜索UIView.intrinsicContentSize使用浏览器的查找菜单搜索实例(快捷键:cmd+ F).intrinsicContentSize从Xcode的文档和API参考中搜索(路径:Help> Documentation and API Reference,快捷方式:shift+ cmd+ 0).UIViewXcode代码中的任何初始化程序(例如UIView()),选择Jump to Definition然后执行搜索intrinsicContentSize.这些搜索将告诉您intrinsicContentSize,使用Swift 3和iOS 10,不再是一个方法,但其计算属性UIView具有以下声明:
var intrinsicContentSize: CGSize { get }
因此,您必须intrinsicContentSize()使用以下代码段替换方法实现:
override public var intrinsicContentSize: CGSize {
return ...
}
Run Code Online (Sandbox Code Playgroud)