1.Swift语言特点
Extensions(扩展):就是向一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)
map: 得到一个由闭包里面的返回值组成的新序列
flatMap: 与map类似的功能,但是会过滤掉返回值里面的nil值
Filter: 得到一个由闭包返回值为true的值组成的新序列
2.使用CocoaPods管理framework
iOS8后苹果开放了framework,也就是动态库功能和静态库在编译时和app代码链接并打进同一个二进制包中不同,动态库可以在运行时手动加载,这样就可以做很多事情。1.应用插件化 2.软件版本实时模块升级 3. 共享可执行文件(仅可用于App Extension)
安装CocoaPods:
gem sources -l
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l
sudo gem install -n /usr/local/bin cocoapods
# cd xxx项目
# touch Podfile
编辑Podfile内容如下:
platform :ios,'8.0'
pod 'AFNetworking', '~> 2.6.0'
pod 'MJRefresh', '~> 2.4.11'
pod 'HysteriaPlayer', '~> 2.1.2'
pod 'TMCache', '~> 2.1.0'
pod 'FMDB', '~> 2.5'
pod 'Masonry', '~> 0.6.2'
pod 'Toast', '~> 2.4'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'SDWebImage', '~> 3.7.3' # add webimage lib
pod 'BlocksKit', '~> 2.2.5'
# pod install
打开工程记得选择xxx.xcworkspace文件
注:CocoaPods生成一个动态框架,其中包含了所有pods而非一个静态库,采用import moduleName来引用第三方库。
如果Pods后面显示 ?,此时点击你的带问号的文件在Xcode上卖弄点击source control->add selected files.就可以了。
3.项目功能简介
- 请求并解析图书列表数据
- 自适应单元格高度的UITableView
- 下拉刷新和上拉加载更多
- UISearchController搜索图书