Swift Error Command failed due to signal: Segmentation fault: 11

本人第一次写简书。写得不好的地方,大家见谅。
作为Swift新手,在写Swift代码过程中碰到“Command failed due to signal: Segmentation fault: 11”错误,搞得我头皮都破了。这是在编译阶段报出的错误,如下图所示。

《Swift Error Command failed due to signal: Segmentation fault: 11》 图1 编译错误堆栈

从图1中,看到有很多“Unnecessary check for ‘iOS’”的警告,但其实这些文件根本就没有做任何iOS版本相关的check。

错误信息没有任何参考价值,只能转化思维,和上一个没有问题的版本做比较看代码上做了什么改变。最后,找到报错的原因在于将protocol设置为private了

《Swift Error Command failed due to signal: Segmentation fault: 11》 图2 DYLoaderProtocol定义

如图2,我定义了objc版本的DYLoaderProtocol,并且在不同定义了基类DYLoader实现DYLoaderProtocol以及子类DYSucceedLoader继承DYLoader,如图3和图4.

《Swift Error Command failed due to signal: Segmentation fault: 11》 图3 DYLoader实现
《Swift Error Command failed due to signal: Segmentation fault: 11》 图4  DYSucceedLoder实现

目前为止,只是有限,还不清楚为什么这样定义会出现segmentation fault 11的错误,有懂的朋友请多多指教。改版后定义如图5。

《Swift Error Command failed due to signal: Segmentation fault: 11》 图5 DYLoaderProtocol修正定义

    原文作者:达叔darren
    原文地址: https://www.jianshu.com/p/417916b82b66
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞