My Knowledge Library

个人博客


  • 首页

  • 分类

  • 标签

  • 归档

最全的 Swift 4 新特性解析

发表于 2017-06-09 | 分类于 Swift | | 阅读次数:
字数统计: 54k | 阅读时长 ≈ 54 mins.
WWDC 2017 带来了很多惊喜。Swift 4 也伴随着 Xcode 9 测试版来到了我们的面前,很多强大的新特性非常值得我们期待在正式项目中去使用它。因为 Swift 4 是开源的,如果你关注 swift-evolution 这个项目的话,就应该已经提前了解到它的新特性了。本文参考了 WWDC ...
阅读全文 »

Swift 中的 Sequence(二)

发表于 2017-06-07 | 分类于 Swift | | 阅读次数:
字数统计: 13k | 阅读时长 ≈ 13 mins.
接上篇 Swift 中的 Sequence 基础篇 撰写本文时 Swift 版本是 4.0 beta。 值类型 Iterator 和引用类型 Iterator值类型 Iterator一般 Iterator 都是值类型的,值类型的 Iterator 的意思是:当把 Iterator 赋值给一个新变量时 ...
阅读全文 »

Swift 中的 Sequence(一)

发表于 2017-05-26 | 分类于 Swift | | 阅读次数:
字数统计: 12k | 阅读时长 ≈ 12 mins.
Swift 是一门可以让你按照自己喜欢的方式写代码的语言,它有很强的扩展能力,而它众多的 Collection Protocols 则是这种扩展能力的提供者之一。 本文介绍一下 Sequence 和 Iterator 的基本概念,及如何实现一个 Sequence。 撰写本文时的 Swift 版本是 ...
阅读全文 »

Swift 模块化项目结构最佳实践

发表于 2017-05-22 | 分类于 Swift | | 阅读次数:
字数统计: 4.5k | 阅读时长 ≈ 4 mins.
这篇文章没有技术,只讲怎么用 Xcode 组织项目结构。 开篇写了这么多年的代码,目前觉得最好的构造项目结构的方式就是 模块化。 模块化在 Objective-C 的项目中可能比较难搞起来,但是在 Swift 项目中就游润有余了,因为 Swift 有着天生 Module 的概念,和它的访问控制修饰 ...
阅读全文 »

用 RxSwift + Moya 写出优雅的网络请求代码

发表于 2016-07-24 | 分类于 第三方库 | | 阅读次数:
字数统计: 28k | 阅读时长 ≈ 28 mins.
RxSwiftRx 是微软出品的一个 Funtional Reactive Programming 框架,RxSwift 是它的一个 Swift 版本的实现。RxSwift 的主要目的是能简单的处理多个异步操作的组合,和事件/数据流。利用 RxSwift,我们可以把本来要分散写到各处的代码 ...
阅读全文 »

浅析SQLite的锁机制和WAL技术

发表于 2016-04-02 | 分类于 本地数据存储 | | 阅读次数:
字数统计: 3.2k | 阅读时长 ≈ 3 mins.
锁机制SQLite基于锁来实现并发控制。SQLite的锁是粗粒度的,并不拥有PostgreSQL那样细粒度的行锁,这也使得SQLite较为轻量级。当一个连接要写数据库时,所有其它的连接都被锁住,直到写连接结束它的事务。 SQLite的数据库连接有5种状态: 状态 对应的锁 未加锁 — ...
阅读全文 »

走进Core Data的世界

发表于 2016-03-12 | 分类于 本地数据存储 | | 阅读次数:
字数统计: 35k | 阅读时长 ≈ 35 mins.
Core Data作为一个OS X和iOS中自带的数据存储框架,很早就存在了。因其存在一些缺点使得很多人放弃使用而采用其它方案。但苹果依然在每个iOS版本中不断对其改进,例如在iOS 8中加入了BetchUpdate,解决了之前一直令人诟病的批量更新问题,使得Core Data更为强大。 0. Co ...
阅读全文 »

面向协议的MVVM

发表于 2015-12-13 | 分类于 架构 | | 阅读次数:
字数统计: 47k | 阅读时长 ≈ 47 mins.
苹果在WWDC2015上介绍了面向协议的编程思想,以及Swift 2.0中可以支持这一编程思想的新特性。参见WWDC2015 Session 408 Protocol-Oriented Programming in Swift然后女中豪杰NatashaTheRobot将其和MVVM结合起来,写了一篇 ...
阅读全文 »

Alamofire 源码赏析(一)基础篇

发表于 2015-11-17 | 分类于 第三方库 | | 阅读次数:
字数统计: 25k | 阅读时长 ≈ 25 mins.
Alamofire是Swift编写的网络库,如果你的项目使用Swift编写的,则可以用它来替代AFNetworking。Alamofire和AFNetworking都是由Mattt Thompson发起的。Alamofire相比AFNetworking而言,利用了Swift语言的特性,来使得代码更加 ...
阅读全文 »

ViewController瘦身的另一种解决方案

发表于 2015-11-02 | 分类于 架构 | | 阅读次数:
字数统计: 27k | 阅读时长 ≈ 27 mins.
对于Massive View Controller,现在流行的解决方案是MVVM架构,把业务逻辑移入ViewModel来减少ViewController中的代码。 这几天又看到另一种方案,在此介绍一下。 例子我们通过例子来说明,这里举的例子是一个常见的基于TableView的界面——一个通讯录用户信 ...
阅读全文 »

如何对ViewModel进行单元测试

发表于 2015-10-26 | | 阅读次数:
字数统计: 19k | 阅读时长 ≈ 19 mins.
使用MVVM架构来开发APP的好处之一就是便于测试业务逻辑,由于ViewModel不涉及界面,就不用考虑Mock对象了,测试起来也方便的多。 对ViewModel进行单元测试的一般流程创建ViewModel -> 把输入数据交给ViewModel -> ViewModel把输入数据进行业 ...
阅读全文 »

MVVM核心概念

发表于 2015-10-26 | 分类于 架构 | | 阅读次数:
字数统计: 1.1k | 阅读时长 ≈ 1 mins.
MVVM的优势: 轻量级ViewController和View UI展现逻辑和业务逻辑分离 可测试 MVVM各部分职责 Model:同MVC中的ModelView(ViewController):同MVC中的View,专注于UI展现逻辑ViewModel:专注于业务逻辑,网络请求,数据库操作等 ...
阅读全文 »

JavaScriptCore 初探

发表于 2015-10-24 | | 阅读次数:
字数统计: 21k | 阅读时长 ≈ 21 mins.
JavaScriptCore 初探在 iOS7 之前,原生应用和 Web 应用之间很难通信。如果你想在 iOS 设备上渲染 HTML 或者运行 JavaScript,你不得不使用UIWebView。iOS7 引入了JavaScriptCore,功能更强大,使用更简单。 JavaScriptCore ...
阅读全文 »

Swift 2 中的单元测试关键字 @testable

发表于 2015-10-24 | 分类于 Swift | | 阅读次数:
字数统计: 1k | 阅读时长 ≈ 1 mins.
用Swift写单元测试,需要在测试类中引入主Target模块 1import Normandy 在Swift 1、1.2中,虽然这样做了,但还是无法使用主工程中的internal类,若想测试某些类,必须把它们写成public的,并且要添加到单元测试的Target中。 在Swift 2 + Xcod ...
阅读全文 »

在Hexo上安家了

发表于 2014-08-28 | 分类于 其它 | | 阅读次数:
字数统计: 764 | 阅读时长 ≈ 1 mins.
今天又把博客整回到了Github Pages上,用的是Node.js语言编写的Hexo博客程序。其实一年前就开了一个博客,购买了主机和域名,先是转载了一些技术文章,然后自己也写了几篇,后来就没坚持了,几个月过去了都没上过博客。 如今机缘巧合之下(帮老婆弄Discuz),又想起了这个博客,于是打算重新 ...
阅读全文 »
<i class="fa fa-angle-left"></i>12

35 日志
10 分类
14 标签
RSS
© 2023 晨曦微光 | 154k | 2:34
由 Hexo 强力驱动
|
主题 — NexT.Mist v6.0.2