Swift 的 box 实现。
在某个值可能包含错误的情况下很有用,例如从 API 获取某些模型时。
将
pod 'SwiftBox'
添加到您的 PodFile。
public class User {
var name: String
init(_ name: String) {
self.name = name
}
}
public class MyClass {
var user: Box<User>
init() {
self.user = Box.Empty
}
func showUser(u: User) {
// do something
}
func handleError(err: NSError) {
// handle your error
}
func tryShowUser() {
switch user {
case Box.Full(let u):
showUser(u.v)
case Box.Failure(let err):
handleError(err)
case Box.Empty:
break
}
}
}