检查 NSURL 数组的索引是否存在

Check if index exists for Array of NSURL

我有一个包含 3 个元素的 NSURL 数组。我正在修改和重置(使为零)元素,因此我需要检查具有索引的元素是否存在。否则,我会收到超出索引的数组。我的问题是,由于这个数组是 NSURL 数组,我不能使用很多功能。

data[0][0]data[0][1]data[0][3]

如何判断索引路径为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)
    }
}