检查 NSURL 数组的索引是否存在
Check if index exists for Array of NSURL
我有一个包含 3 个元素的 NSURL 数组。我正在修改和重置(使为零)元素,因此我需要检查具有索引的元素是否存在。否则,我会收到超出索引的数组。我的问题是,由于这个数组是 NSURL 数组,我不能使用很多功能。
data[0][0]
、data[0][1]
、data[0][3]
所以使用self.data[0][2].absoluteString
会崩溃。
我无法使用indices.contains(index)
检查
如何判断索引路径为NSURL
的数组元素是否存在?
我想做..
if (data[0][0] exists) {
// do
}
一个好的模式是:
if array.count > indexYouWantToAccess {
// for sure the array will contain the index
}
你的情况,你应该这样检查
if data[0].count > index {
let url = data[0][index]
if url == nil {
// Do whatever
} else {
// Take the absolute string
}
}
要处理 nil
个元素,您可以做到
for element in data[0] {
if element == nil {
// Is nil
} else {
// Not nil
}
}
import Cocoa
var someInts:[Int] = [10, 20, 30]
for index in someInts {
println( "Value of index is \(index)")
}
import Cocoa
var someInts:[Int] = [10, 20, 30]
for var index = 0; index < someInts.length; ++index {
println( "Value of someInts[\(index)] is \(someInts[index])")
}
它包含所有信息:http://www.tutorialspoint.com/swift/swift_for_loop.htm
可以通过count
找到
var data = [[String]]()
let data1 = ["test 1","test 2"]
data.append(data1)
let indexToFind = 1
if data[0].count > indexToFind {
print("found")
print("value \(data[0][indexToFind])")
}
else {
print("not found")
}
如果 indexToFind = 2 那么你会得到
not found
如果 indexToFind = 1 那么你会得到
found
value test 2
对于URL
您可以通过 absoluteString.characters.count
计算 url 中的字符数
var data = [[NSURL?]]()
let data1 = [NSURL(string: ""),NSURL(string: ""),NSURL(string:"http://google.com")]
data.append(data1)
let indexToFind = 2
if data[0].count > indexToFind {
print("found")
print("value \(data[0][indexToFind]!)")
if data[0][indexToFind]!.absoluteString.characters.count > 0 {
print("this is an url")
}
}
else {
print("not found")
}
输出:
found
value http://google.com
this is an url
let array = [1, 2, 3]
for index in -20...20 {
if let item = array[safe: index] {
print(item)
}
}
我有一个包含 3 个元素的 NSURL 数组。我正在修改和重置(使为零)元素,因此我需要检查具有索引的元素是否存在。否则,我会收到超出索引的数组。我的问题是,由于这个数组是 NSURL 数组,我不能使用很多功能。
data[0][0]
、data[0][1]
、data[0][3]
所以使用
self.data[0][2].absoluteString
会崩溃。我无法使用
indices.contains(index)
检查
如何判断索引路径为NSURL
的数组元素是否存在?
我想做..
if (data[0][0] exists) {
// do
}
一个好的模式是:
if array.count > indexYouWantToAccess {
// for sure the array will contain the index
}
你的情况,你应该这样检查
if data[0].count > index {
let url = data[0][index]
if url == nil {
// Do whatever
} else {
// Take the absolute string
}
}
要处理 nil
个元素,您可以做到
for element in data[0] {
if element == nil {
// Is nil
} else {
// Not nil
}
}
import Cocoa
var someInts:[Int] = [10, 20, 30]
for index in someInts {
println( "Value of index is \(index)")
}
import Cocoa
var someInts:[Int] = [10, 20, 30]
for var index = 0; index < someInts.length; ++index {
println( "Value of someInts[\(index)] is \(someInts[index])")
}
它包含所有信息:http://www.tutorialspoint.com/swift/swift_for_loop.htm
可以通过count
找到
var data = [[String]]()
let data1 = ["test 1","test 2"]
data.append(data1)
let indexToFind = 1
if data[0].count > indexToFind {
print("found")
print("value \(data[0][indexToFind])")
}
else {
print("not found")
}
如果 indexToFind = 2 那么你会得到
not found
如果 indexToFind = 1 那么你会得到
found
value test 2
对于URL
您可以通过 absoluteString.characters.count
var data = [[NSURL?]]()
let data1 = [NSURL(string: ""),NSURL(string: ""),NSURL(string:"http://google.com")]
data.append(data1)
let indexToFind = 2
if data[0].count > indexToFind {
print("found")
print("value \(data[0][indexToFind]!)")
if data[0][indexToFind]!.absoluteString.characters.count > 0 {
print("this is an url")
}
}
else {
print("not found")
}
输出:
found
value http://google.com
this is an url
let array = [1, 2, 3]
for index in -20...20 {
if let item = array[safe: index] {
print(item)
}
}