EFSafeArray 是一个扩展,用于使数组索引安全,如果索引超出范围,则返回 nil 而不是崩溃,它适用于 iOS
、macOS
、watchOS
和 tvOS
。
示例
要运行示例项目,请克隆仓库,并首先从 Example 目录中运行 pod install
。
要求
版本 | 需要 |
---|---|
0.x | XCode 8.0+ Swift 3.0+ iOS 8.0+ |
4.x | XCode 9.0+ Swift 4.0+ iOS 8.0+ |
5.x | XCode 10.2+ Swift 5.0+ iOS 8.0+ / macOS 10.11+ / tvOS 9.0+ / watchOS 2.0+ |
安装
CocoaPods
EFSafeArray 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'EFSafeArray'
Swift包管理器
Swift包管理器是一个用于自动化分发Swift代码的工具,并且与Swift编译器集成。
一旦您设置了Swift包,将EFSafeArray作为依赖项添加就像将其添加到Package.swift文件中的dependencies值一样简单。
dependencies: [
.package(url: "https://github.com/EFPrefix/EFSafeArray.git", .upToNextMinor(from: "5.1.2"))
]
使用
var list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
// Get Index
let xxx = list[0] // xxx: Int = 1
let zzz = list[0~] // zzz: Int? = 1
let yyy = list[10~] // yyy: Int? = nil
// Set Index
list[0] = 0 // list = [0, 2, 3, 4, 5, 6, 7, 8, 9, 0]
list[0~] = 1 // list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
list[10~] = 10 // list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
// Get Bounds
let iiii = list[(0...5)~] // iiii: ArraySlice<Int>? = [1, 2, 3, 4, 5, 6]
let oooo = list[(-1...12)~] // oooo: ArraySlice<Int>? = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
// Set Bounds
list[(0...5)~] = [1] // list = [1, 7, 8, 9, 0]
list[(-1...12)~] = [2, 3, 4, 5] // list = [2, 3, 4, 5]
作者
EyreFree,[email protected]
许可证
EFSafeArray遵循MIT许可证。有关更多信息,请参阅LICENSE文件。