当前位置: 首页 > 面试题库 >

冗余一致性错误消息Swift 2

张照
2023-03-14
问题内容

我将项目更新为Swift 2,并收到了很多redundant conformance of XXX to protocol YYY。当类符合时,这种情况尤其经常发生(或总是发生)CustomStringConvertible。也有一些地方Equatable

class GraphFeatureNumbersetRange: GraphFeature, CustomStringConvertible { // <--- get the error here
...
}

我怀疑在实现var description: String { get }或协议需要的任何方法时,我不需要显式地遵循协议。我是否应该按照fixit指示并删除所有这些指示?如果一个类实现了所有协议的方法,Swift现在会自动推断出一致性吗?


问题答案:

如果子类声明符合已经从超类继承的协议,则将在Xcode 7(Swift 2)中获得该错误消息。例:

class MyClass : CustomStringConvertible {
    var description: String { return "MyClass" }
}

class Subclass : MyClass, CustomStringConvertible {
    override var description: String { return "Subclass" }
}

错误日志显示:

main.swift:10:27:错误:“子类”与协议“ CustomStringConvertible”的冗余一致性
类子类:MyClass,CustomStringConvertible {
                          ^
main.swift:10:7:注意:“子类”从此处继承超类对协议“ CustomStringConvertible”的一致性
类子类:MyClass,CustomStringConvertible {
      ^

从子类声明中删除协议一致性解决了以下问题:

class Subclass : MyClass {
    override var description: String { return "Subclass" }
}

但是超类必须显式声明一致性,这不是从description 属性的存在自动推断出来的。



 类似资料:
  • 我不和谐。关于repl的js初学者。信息技术 代码: 但是控制台发送这样的错误: 有人能看出我错在哪里吗?

  • 但是,我发现这个json体太冗长了。 我如何指定我只需要错误描述消息或类似的东西?有灵巧/纤细的结构吗?

  • 再一次,我的代码没有跟上,我不知道为什么。。。控制台显示没有错误。 这是我的密码:

  • 在本章中,我们将讨论在使用SLF4J时获得的各种错误消息或警告以及这些消息的原因/含义。 无法加载类“org.slf4j.impl.StaticLoggerBinder”。 这是在类路径中没有提供SLF4J绑定时引起的警告。 以下是完整的警告 - 要解决此问题,需要添加任一日志框架绑定。本教程上一小节对此进行了解释说明。 注 - 这种情况发生在SLF4J的版本中,介于1.6.0和1.8.0-bet

  • 问题内容: 这是我的代码片段: 这应该给我一个错误,因为这些表甚至不存在。但是我得到的是: 数组([0] => 00000) 如何获得对该错误的更好描述,以便可以调试问题? 问题答案: 尝试以下方法: 在准备之前添加以下内容: 这将更改PDO错误报告类型,并在出现PDO错误时使其发出警告。尽管应该设置您的errorInfo,但它应该可以帮助您进行跟踪。

  • 我正在使用Eclipse将json隐藏到Java中的字符串中。但我一直收到: 有人能告诉我json有什么问题吗?我如何改变它使其有效?我对java和json相当陌生,如果我错过了任何应该包括的细节,我很抱歉。