iOS 第三方优质库\框架\项目介绍

仲孙翔飞
2023-12-01


1.CocoaSeeds

CocoaSeeds跟CocoaPods一样是一款第三方依赖管理工具,如果要在CocoaPods中使用Swift库,则需要强制把CocoaPods中引用的所有库编译为动态库,而动态库需要iOS8以上才支持,如果应用还需要支持到iOS7,显然用CocoaPods就不合适;而CocoaSeeds则将Swift源代码下载到项目中,不需要编译成动态库,从而可以支持到iOS7;以个人实际项目经验而言,CocoaPods跟CocoaSeeds可协同使用,CocoaPods主要用于管理OC库,CocoaSeeds主要用于管理Swift库。


2.R.swift

R.swift 是一种优雅安全的方式使用资源文件的方案。R.swift 通过对项目中的资源文件进行扫描,生成静态资源类(R.generated.swift), 代码中可通过例如(let icon = R.image.settingsIcon)这种方式访问到项目中的图片,生成静态类一是可以方便的联想输入,二是避免手写硬编码带来的错误隐患;经过Build Phases配置,R.swift 运行于源代码编译之前生成了静态资源类,如果项目中少了某张图片,而源代码中又引用了这张图片,这时源代码就无法编译通过,从而避免了错误的发生。


3.ObjectMapper

ObjectMapper 是一个基于 Swift 语言开发的能够让 JSON 与 Object 之间轻易转换的类库。从JSON中解析中对应数据,虽然可以通过(let c = data?["a"]?["b"]?["c"])这种方式获取,但是这种方式有诸多弊端,参数硬编码存在隐患,并且代码丑陋,而直接将JSON转为Model Object则可以避免这些问题。

JSON 到 Object的转换工具有很多,例如YYModel,YYModel有个缺点,如果Model是使用Swift写的,并且元素属性是可选型,YYModel就无法正确解析,另外JSON中如果含有数组,使用YYModel还需要特别声明,而ObjectMapper就不需要这么麻烦,使用也简单,因此如果是Swift写的项目,推荐使用ObjectMapper。


4.Then
Then是PromiseKit的轻量版,皆在提供一种优雅的链式调用方式来解决回调地狱的方案。异步开发中,如果需求稍微复杂一点,回调嵌套层级就会很多,严重影响代码的结构和可读性。
举个常见的更新头像为例,至少三步,1.上传头像 2.拿上传成功的头像URL调用更新头像API 3.API更新成功后,更新本地数据。。。
如果使用Then,则代码:
uploadImage(avatarImage).then(updateAvatar).then(avatarUpdateSuccess).onError(avatarUpdateFail)

 类似资料: