ios – 这是否重写方法?

ios – 这是否重写方法?,第1张

概述我最近被迫更新到 Swift 3.0,看起来Xcode的转换并没有做得很好.幸运的是,我能够手动解决大部分问题,但是,让我有点困惑. 在升级到Swift 3.0之前,这行覆盖uiController中的canBecomeFirstResponder方法: override func canBecomeFirstResponder() -> Bool { return true} 但是,它 我最近被迫更新到 Swift 3.0,看起来Xcode的转换并没有做得很好.幸运的是,我能够手动解决大部分问题,但是,让我有点困惑.

在升级到Swift 3.0之前,这行覆盖uiController中的canBecomeFirstResponder方法:

overrIDe func canBecomeFirstResponder() -> Bool {    return true}

但是,它现在返回错误:

Method does not overrIDe any method from its superclass.

但是,删除覆盖位似乎没有解决它,因为它引发了一个似乎与前一个相矛盾的不同错误:

Method ‘canBecomeFirstResponder()’ with Objective-C selector ‘canBecomeFirstResponder’ conflicts with getter for ‘canBecomeFirstResponder’ from superclass ‘UIResponder’ with the same Objective-C selector

实际上是否存在覆盖?为什么Xcode在这里给我混合信息?

作为参考,我看过this question,尽管它非常相似,但它是一个类,这是一个方法.为了安全起见,我确实尝试使用该问题的解决方案,它进一步破坏了事情并引发了同样的错误.

解决方法 canBecomeFirstResponder已从Swift 2.2中的方法更改为Swift 3.0中的属性.这意味着您必须更改代码以将其覆盖为属性而不是方法.
overrIDe var canBecomeFirstResponder: Bool { return true }
总结

以上是内存溢出为你收集整理的ios – 这是否重写方法?全部内容,希望文章能够帮你解决ios – 这是否重写方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1109673.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存