学了一些基本的控件使用之后,想自己做项目怎么办,当然是研究现有的一些开源的app了,直接从github拔了一个自己喜欢的项目
首先项目是16年写的
podfle里面的插件版本都比较老
打开终端CD进入项目目录,执行pod outdated,查看当前插件最新版本
将对应版本进行更新,如图
然后命令行执行pod install,会发现安装失败,原因是之前的platform:ios版本是8.0.而最新的库要求ios版本要更高,我这里改成12.4.6就ok了
然后在执行pod install,更新成功,然后command+B编译,会发现有很多报错的地方,出错的地方无非两点
- 新的api代替了老的api,按照提示用新api替换老api就行
- 老的swift版本点击事件没有@objc标志,加上即可
-
Alamofire的使用也更新了,原来的Alamofire.request方法改成了AF.request
然后还有一些别的错误也基本上按照提示修改即可,这里有个比较特别的,如图
这个方法官方是在swift3.1以后就废除了,所以调用会报错,那这个tabbar的初始化要怎么搞才能有同等效果呢
func initialize() {
/// 设置导航栏标题
let navBar = UINavigationBar.appearance()
navBar.barTintColor = YMGlobalRedColor()
navBar.tintColor = UIColor.white
navBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 20)]
}
如上面代码所示删掉方法前面的internal override class和方法体内的super.initialize(),然后在Appdelegate里面调用这个方法
这样就完美解决了,最后编译运行,虽然数据加载不出来,但是界面ok了,数据出错应该是接口有问题