ben*_*ggy 1 arrays null-check swift
我正在尝试检查Swift中是否存在变量(或更确切地说是数组的特定索引)。
如果我用
if let mydata = array[1] {
Run Code Online (Sandbox Code Playgroud)
如果索引具有值,则会出现错误,如果索引没有值,则会崩溃。
如果我用
if array[1] != nil {
Run Code Online (Sandbox Code Playgroud)
我收到编译器警告和/或崩溃。
本质上,我只是试图获取命令行参数(可以是任何文件名)并检查是否包含了这些参数。我见过的所有命令行参数示例都使用switch / case语句,但是要检查已知文本,而不是更改文件名。
我仍然在Xcode中使用以下内容获取索引超出范围错误:
if arguments.count > 1 {
var input = arguments[2]
} else {
}
Run Code Online (Sandbox Code Playgroud)
尝试这个:
extension Collection where Indices.Iterator.Element == Index {
subscript (safe index: Index) -> Generator.Element? {
return indices.contains(index) ? self[index] : nil
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
if let value = array[safe: 1] {
print(value)
}
Run Code Online (Sandbox Code Playgroud)
现在您甚至可以:
textField.text = stringArray[safe: anyIndex]
Run Code Online (Sandbox Code Playgroud)
这不会导致崩溃,因为textField.text可以为nil,并且[safe:]下标始终返回value(如果存在)或nil(如果不存在)
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |