Swift学习周报(二)

阿凡达2018-08-21 10:58

在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。


网易云新用户大礼包:https://www.163yun.com/gift

本文来自网易实践者社区,经作者胡波授权发布。