Reducer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public enum CounterAction {
case decrTapped
case incrTapped
}

func counterReducer(
state: AppState, action: CounterAction
) -> AppState {
var copy = state
switch action {
case .decrTapped:
copy.count -= 1
case .incrTapped:
copy.count += 1
}
return copy
}

上面的代码是个标准的 reducer 结构:当收到 incrTapped 时,修改全局状态(计数加一),再返回新的全局状态。为什么称这样的结构为 reducer?

阅读全文 »

工作项目用了 Socket.IO 来做客户端与服务端的实时通信,我看了 Socket.IO 是基于 WebSocket 协议进一步封装的。于是,我希望通过实现 WebSocket 客户端一小部分 功能,以达到了解 WebSocket 协议的目标!

  1. 教科书:RFC 6455
  2. 老师:Codex
  3. 代码仓库地址:WebSocketClient-Demo
阅读全文 »

在 Swift 中,协议是非常重要的部分之一。使用协议,可以让我们写出灵活的代码,而不必拘泥于接口和实现的耦合,但协议也有自己的问题。

阅读全文 »
0%