swift类型转换之Could not cast value of type xxx to xxx错误的一种特殊情况记录

时间:2022-06-01 20:33:07

之前swift项目打包成Framework静态库,提供给OC项目套入使用时,有时会抱这样一个错误:

swift类型转换之Could not cast value of type xxx to xxx错误的一种特殊情况记录

这个错误发生的概率比较随机,有时会,有时不会,而且这句话在swift中的使用,是做model类型强制转换(as!)时发生的。

分析了很多原因,都不能解决,后来偶然一次才发现了根本原因,很神奇。。。。

原因如下:

因为我之前的项目有两个Target,中间有共用model,然后,打包的时候,需要分开两个包,但其中的model我为了省事,就直接拷贝复用了,类名称都是一样的,然后,在使用的项目里,会引用这两个包,解析的时候,有时就会抱如上的错误,猜测原因就是运行时把两个类弄混了,因为名称是一样的。

解决办法:

只需要将另一个包里的模型类名称改一下就行了,让两者不要重复。这样就不会产生这个错误了。

可能这也算是iOS里面的一个小bug吧。。。