swift类型转换之Could not cast value of type xxx to xxx错误的一种特殊情况记录
2017-03-02 09:40
711 查看
之前swift项目打包成Framework静态库,提供给OC项目套入使用时,有时会抱这样一个错误:
这个错误发生的概率比较随机,有时会,有时不会,而且这句话在swift中的使用,是做model类型强制转换(as!)时发生的。
分析了很多原因,都不能解决,后来偶然一次才发现了根本原因,很神奇。。。。
原因如下:
因为我之前的项目有两个Target,中间有共用model,然后,打包的时候,需要分开两个包,但其中的model我为了省事,就直接拷贝复用了,类名称都是一样的,然后,在使用的项目里,会引用这两个包,解析的时候,有时就会抱如上的错误,猜测原因就是运行时把两个类弄混了,因为名称是一样的。
解决办法:
只需要将另一个包里的模型类名称改一下就行了,让两者不要重复。这样就不会产生这个错误了。
可能这也算是iOS里面的一个小bug吧。。。
这个错误发生的概率比较随机,有时会,有时不会,而且这句话在swift中的使用,是做model类型强制转换(as!)时发生的。
分析了很多原因,都不能解决,后来偶然一次才发现了根本原因,很神奇。。。。
原因如下:
因为我之前的项目有两个Target,中间有共用model,然后,打包的时候,需要分开两个包,但其中的model我为了省事,就直接拷贝复用了,类名称都是一样的,然后,在使用的项目里,会引用这两个包,解析的时候,有时就会抱如上的错误,猜测原因就是运行时把两个类弄混了,因为名称是一样的。
解决办法:
只需要将另一个包里的模型类名称改一下就行了,让两者不要重复。这样就不会产生这个错误了。
可能这也算是iOS里面的一个小bug吧。。。
相关文章推荐
- Could not cast value of type '__NSCFNumber' (0x...) to 'NSString' (0x...).
- Could not cast value of type 'Swift._SwiftDeferredNSDictionary'或者'Swift._SwiftDeferredNSArray' ?
- iOS开发bug消灭之:Could not cast value of type 'UINavigationController' to 'RedShirt.AddEmployeeTableVi...
- method to solve the problem : Could not cast value of type 'NSManagedObject_ to
- loadtxt()读取数据类型转换/string转换float/ValueError: could not convert string to float:
- Spring 整合 Flex (BlazeDS)无法从as对象 到 Java对象转换的异常:org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.Date' to required type 'java.sql.Timestamp' for property 'wfsj'; nested exception is java.lang.Ill
- swift错误: Type "xxx" does not confirm to protocol "BooleanType"
- SSH框架问题——hbm.xml配置出现的org.hibernate.MappingException: Could not determine type for:(貌似叫数据类型转换错误)问题
- could not be set to a 'string' value. You must set this property to a non-null value of type
- 类型转换错误java.math.BigDecimal cannot be cast to java.
- spring.net配置错误:Could not load type from string value ...
- Hibernate继承映射的“Could not format discriminator value to SQL string”错误解决方法
- 手把手教你:安装svn出现could not write value to key的错误
- org.hibernate.MappingException: Could not determine type for: String 数据类型错误
- c++函数指针、虚继承大小、类型转换、C特殊情况记录
- Null value was assigned to a property of primitive type setter of XXX
- Hibernate继承映射的“Could not format discriminator value to SQL string”错误解决方法
- Jackson转换泛型List出现错误java.util.LinkedHashMap cannot be cast to com.xxx
- mysql 安装过程中的错误:my-template.ini could not be processed and written to XXX\my.ini.Error code-1
- 奇怪的hibernate 的类型转换错误: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang