便利性
您应用的最高便利性框架。
故事
编程就是关于数据的。我们修改数据,存储它,共享它。您可以在您所做的每个应用中看到这一点。所以我终于写完了解码数据、提取可选对象、索引集合等相同代码,决定使用一个名为“可复用”的示例文件夹来存放这些代码。并将其从项目迁移到项目...
一天,《问题》出现了。当您在新的项目中向这个文件夹添加任何东西时,更改不会应用于旧的。Xcode文件夹引用可以解决这个问题,但您如果需要在远程工作且无权访问文件夹怎么办呢?
所以,我决定写这个框架并与全世界分享。我会尽量使其尽可能干净,但如果您在这里发现任何垃圾,请告诉我 c
使用
布尔值
-
切换
Bool().toggled == !Bool
字符集
-
可通过字符串字面量表达
let frameworkName = "Convenience" // == CharacterSet(charactersIn: "Convenience")
-
静态工厂方法
.binaryDigits
.hexDigits
可编解码
-
方便的编码
Encodable.encode(using encoder: ConvenientEncoder = JSONEncoder())
Decodable.decode(from data: Data, using encoder: ConvenientEncoder = JSONEncoder())
收集
-
安全下标访问
[1 ,2, 3][安全: 10] == nil
-
整数范围下标用于双向集合
"String"[0] == "S"
"String"[1..<3] == "tr"
"String"[3...] == "ing"
...
颜色
-
十六进制颜色转换用于NS和UI颜色
[NS/UI]Color(hex: "#FA6878AA")
[NS/UI]Color(hex: "#FA6878")
[NS/UI]Color(hex: "FA6878")
[NS/UI]Color(rgb: 0xfa6878ff)
(来自十六进制Int)[NS/UI]Color(rgb: 0xFA6878)
数据
-
解码
let decoding = Data().decode(to: SomeDecodable.self) decoding.value // SomeDecodable? switch decoding { case .success(let value): return value // SomeDecodable case .failure(let error): vc.showAlert(with: error) // for ex. }
-
获取字符串
Data().string(using: .ascii)
Data().string()
(UTF-8)
错误
-
收集
// for now works only for () -> Void funtions func someThrowable() throws {} let errors: ErrorBag = Error.collect { someThrowable someThrowable someThrowable } /* == collect { someThrowable someThrowable someThrowable } */ print(errors.localizedDescription) // == errors.contents.forEach { print($0.localizedDescriprion) }
可选
-
示例
let a: Int? = 1 // a == 1 a.isNil // false a.release() // a == nil a.isNil // true let b = a.unwrap(default: 3) // a == nil, b == 3 let c: SomeProtocol? = SomeInstance() let d = c.cast(to: SomeInstance.self, default: SomeInstance())
NS锁
NS正则表达式(Regex)
原始表示可达
转换
修改
字符串(ns、url、regex、crypto)
协议(TypeErasable、StaticNamedType)
PlainError
(正在开发新功能和 Xcode 文档(估计已完成 90%),GitHub 文档将在以后提供。)
要求
📱 iOS 8.0+
安装
SwiftPM
CocoaPods
便利性通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod 'Convenience'
并在终端运行pod install
。
许可证
在MIT许可证下提供便利。有关更多信息,请参阅LICENSE文件。
随时贡献力量或沟通。我对您的想法持开放态度。