【问题标题】:SwiftyJSON Redundant Conformance ErrorSwiftyJSON 冗余一致性错误
【发布时间】:2015-09-22 05:22:09
【问题描述】:

SwiftyJSON.swift 文件给了我一个错误,即“NSNumber”与协议“Comparable”的冗余一致性

extension NSNumber: Swift.Comparable {
    var isBool:Bool {
        get {
            let objCType = String.fromCString(self.objCType)
            if (self.compare(trueNumber) == NSComparisonResult.OrderedSame && objCType == trueObjCType)
                || (self.compare(falseNumber) == NSComparisonResult.OrderedSame && objCType == falseObjCType){
                    return true
            } else {
                return false
            }
        }
    }
}

【问题讨论】:

  • 确保所有使用 JSON 结构的类都有 import import SwiftyJSON。在我的情况下,一类没有,这导致了错误。

标签: ios8 xcode7 swifty-json


【解决方案1】:

我找到了另一个解决方案。如果您将 swifty.json 作为源代码(没有 pod)添加到项目中,您应该从源代码中删除所有 import SwiftyJSON 行。

【讨论】:

    【解决方案2】:

    我的应用程序一直在使用它并且很长一段时间都没有出现任何问题,突然这个问题开始发生。这是我的场景:

    1. 使用 SwiftyJSON 库可以正常编译和运行应用程序。

    2. 开始在应用程序中使用单元测试。可以像正常运行和测试环境一样启动应用程序,没有编译或运行问题。

    3. 对项目进行了一些更改(在任何目标成员中添加和删除了一些类)。

    4. 如果我尝试在测试模式下运行,问题突然开始发生,正常运行启动时没有发生问题。

    5. 做了一个产品->干净但没有运气。

    6. 进入我的版本控制并观察到为任何目标成员添加和删除类会更改文件“project.pbxproj”(因为它完全符合逻辑)。但是终于有了项目开始时的状态(步骤 2),我意识到出现在“project.pbxproj”文件中的文件的顺序发生了变化,这是在步骤 3 中进行更改之后,并恢复将项目中的状态手动更改为第 2 步,更改会保留在文件中。

    7. 好吧,我尝试了一些方法:如果假设现在的项目结构在步骤 2 之后是相同的,我进入版本控制并忽略了“project.pbxproj”文件中的更改。然后去xCode并在Test中启动运行,编译SwiftyJSON的问题消失了

    结论: 我不知道这是否是原因,但这让我认为 project.pbxproj 文件中“声明”的文件被认为是以某种顺序编译的,并且似乎与编译器在其他人之前接受文件有关(我'我不是编译过程的专家)。

    【讨论】:

      【解决方案3】:

      在我的测试目标中包含 SwiftyJson 时,我遇到了这个问题。如果您的应用程序目标使用 SwiftyJson,您应该能够在测试中使用它,只需将应用程序的模块导入为:

      @testable import <ModuleName>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-16
        • 2016-03-21
        • 2018-07-11
        • 2015-12-09
        • 2016-10-20
        相关资源
        最近更新 更多