Xcode 10 beta2:无法在没有参数的情况下调用类型 'UIView' 的初始值设定项

Xcode 10 beta2: Cannot invoke initializer for type 'UIView' with no arguments

我已经下载了Xcode 10 beta2 并重建了我的项目,代码如:

let someView = UIView()

出现以下错误:

Cannot invoke initializer for type 'UIView' with no arguments

很奇怪。有人在使用 Xcode 10 beta2 时遇到过这些构建错误吗?

试试这个

let someView = UIView(frame: CGRect.zero)

对我有用

只需添加 "frame" 参数: UIView(框架:CGRect.zero) (或任何你需要的)

在我的代码中,我像这样设置视图,然后添加约束(基本上覆盖框架参数)。

同样适用于 UIView、UILabel、UIScrollView 和其他... 对于 UIButtons,添加 "type" 参数: UIButton(类型:UIButtonType.custom)

对我来说,这是通过扩展 NSObjectProtocol:

extension NSObjectProtocol where Self: UIView

我通过将 NSObjectProtocol 替换为 UIView 符合的任何其他协议来修复它。在我的例子中是 UIAppearance:

extension UIAppearance where Self: UIView

经过几个小时的调试,我终于找到了问题。

我使用 pod SwiftTheme,将其升级到新版本后,这些错误都消失了。

看到这个commit