一、Declarations in extensions cannot override yet
图片.png错误来由:
swift 语言版本升级而产生的问题,从 3.0 升到 4.0 之后,如果你有重写 extension 中的方法,就会出现这个报错。官方在swift 4.0 中不推荐重写 extension 中的方法
解决方式:
在基类中被重写的方法前面加上 @objc就可以了。
//3.0版本
extension BaseUIViewController{
func setupUI() {
// 基类的实现代码
}
}
//4.0版本
extension BaseUIViewController{
@objc func setupUI() {
// 基类的实现代码
}
}
二、Type 'Any' has no subscript members
图片.png在Sift4中参数都是Any类型的,而在Swift3中参数类型是AnyObject
Sift4中参数类型.png
在swift3中是没有问题的,但是在Swift4中必须将json从更改AnyObject为Any。必须将Any投射到AnyObject。
三、Swift使用YYModel需注意:
因为YYModel是OC的框架,所以需要在Model中加上@objcMembers,否则加载不到数据
>没加之前
图片.png>加之后
图片.png 图片.png四、用OC写的项目,然后pod中导入Swift库时报错
Snip20180503_27.png有人在stack overflow贡献出这样的答案
图片.png我去 结局咋么还是一样。不服 。。。操作了咋还给我报这个 。。
于是手抖 发现 只要修改了Swift Language Version
,再直接在终端 cd到自己的工程的路径 执行一次pod install
即可
经历过程: 我只对TARGETS->Build Settings ->Swift Language Version 修改成了4.0,然后再cmd+shift+k 编译还是报错 ——> cmd+Q -> 打开项目->cmd+shift+k 还是不行->最后再cd到自己的工程的路径 执行一次pod install
即可 ->编译成功
网友评论