Ios 当试图编码可编码一致类的子类时,EXC_BAD_访问

Ios 当试图编码可编码一致类的子类时,EXC_BAD_访问,ios,json,swift,crash,codable,Ios,Json,Swift,Crash,Codable,我一定是个白痴什么的,但我已经连续三天挠头了,不知道我打算在我的Swift程序中编码一些JSON数据到底出了什么问题 情况如下: 我有两门课,如下所示: class Node: Codable { // Nothing in here } do { let encodedData = try JSONEncoder().encode(Shape()) } catch { print(error) } 及 然后,我尝试将子类编码如下: class Node: Codab

我一定是个白痴什么的,但我已经连续三天挠头了,不知道我打算在我的Swift程序中编码一些JSON数据到底出了什么问题

情况如下: 我有两门课,如下所示:

class Node: Codable {
    // Nothing in here
}
do {
    let encodedData = try JSONEncoder().encode(Shape())
} catch {
    print(error)
}

然后,我尝试将子类编码如下:

class Node: Codable {
    // Nothing in here
}
do {
    let encodedData = try JSONEncoder().encode(Shape())
} catch {
    print(error)
}
这就是我添加到一个空的单视图应用程序项目中的全部内容。当我运行它时,我得到“线程1:EXC\u坏访问(代码=1,地址=0x350)”崩溃

当然,最初我的类也有很多可编码的属性。我以为是它们中的任何一个,所以我把它们剥掉了,但似乎并不是这些属性导致了崩溃


我在一台高性能的Sierra MacBook Pro上运行Xcode 9.3。有没有人愿意重现这种情况,或者有人已经撞到了这种奇怪的行为?

这是一个已知的错误,您可以通过为调试配置打开整个模块编译模式,或者升级到Xcode 10 beta来解决它。

这听起来很有希望。所以,我的设置一定有问题。有没有关于重置或重新安装的想法?请注意,我已经创建了一个全新的项目,因此这应该排除项目本身先前更改的任何遗留问题。也许这与某种未对齐的设置有关?这正是我所做的,Matt:(很高兴:是的,清理构建,然后关闭Xcode,删除这个特定项目的DerivedData,删除DerivedData的ModuleCache子文件夹(不确定我是否必须这样做),然后重新启动Xcode。结果相同。我还有什么其他步骤可以做吗?马特,尽管我根本没有使用模拟器,但我还是按照你的建议删除了所有模拟器,退出Xcode,完全清空了DerivedData文件夹,包括ModuleCache,重新启动了Mac,然后我们又开始了——优雅地崩溃了……也许重新安装Xcode是件好事下一行?请看。我已将您的github项目添加到报告中,因此请不要将其删除。Matt,事实上,当我更改编译模式(调试)时从单个文件到整个模块,现在一切都恢复了正常。我希望这就是你提到的设置。你救了我一天,啊,晚上!我非常感谢找到问题的根源!当然,我不会很快把它取下来。是的,对不起,我是说编译,我在打字时对大脑进行了优化。