iOS学习周报三
2015-12-25 本文已影响401人
eaa1d39d22a8
在Swift中用??操作符替代判空
在C#中也是有??操作符的,用法和Swift类似
用法如下:
//如果b不为空,则a=b, 否则a = “another value"
let a = b ?? “another value”
相当于
if b == nil {
a = “another value"
}
else {
a = b
}
开源项目
1.Swift依赖库管理
Swift依赖库管理有三种方式:
-
CocoaPods (中心化的依赖管理器,CocoaPods项目同时还必须包含一个podspec
文件,里面是项目的一些元数据,以及确定项目的编译方式) -
Carthage(Github,去中心化的依赖管理器,Carthage使用xcodebuild
来编译框架的二进制文件。Github已经有相当一部分Swift开源库采用Carthage进行管理,详细介绍文章可以参考,不过Carthage支持iOS 8及以上) -
Swift Package Manager (苹果Swift推荐的依赖库管理方式,相信后面会成为趋势)
后期可以详细研究下三种依赖库管理方式的优缺点及细节对比。
2.Swift log相关开源库
整理了下Swift star数比较多的3个开源项目,后续如果封装一个Swift log版本可以参考以下,其中有些Log Debug信息对于开发效率还是很有帮助的。
-
SwiftyBeaver
亮点:支持高亮,简单,可以log各种类型的信息。 -
XCGLogger
亮点:支持平台比较多,iOS、OS X、WatchOS、tvOS,支持不同的log级别。 -
KZLinkedConsole
亮点:console下点击debug连接,直接可以定位到工程中对应的log代码行,省去查找的麻烦。 -
QorumLogs
亮点:支持高亮,支持Google Docs,只需两行代码就可以将log发送到Google Docs。