Swift 如何检查集合中的值是否为零<;T>;
我有一个集合,现在我尝试在索引位置获取一个对象:Swift 如何检查集合中的值是否为零<;T>;,swift,swift2,Swift,Swift2,我有一个集合,现在我尝试在索引位置获取一个对象: var testItem: ExpandableCell if let object = expandableCells[indexPath.row] { testItem = object as! ExpandableCell } 但是我犯了一个错误。 更新: 我只是将集合类变量从集合转换为数组,现在有了: 让realItem:ExpandableCell if let testItem: A
var testItem: ExpandableCell
if let object = expandableCells[indexPath.row] {
testItem = object as! ExpandableCell
}
但是我犯了一个错误。
更新:
我只是将集合类变量从集合转换为数组,现在有了:
让realItem:ExpandableCell
if let testItem: AnyObject = expandableCells[indexPath.row] {
realItem = testItem as! ExpandableCell
print(realItem?.title)
}
它编译时没有问题,但是当我运行代码时,索引超出了它的边界,然后我得到以下错误:
因此,我的if let
语句似乎不起作用
有线索吗
是唯一对象的无序集合。因为它们是无序的,所以通过Int
索引获取它们毫无意义
也许您打算使用一个
数组
,一个有序的对象集合Array
不能保证其对象的唯一性,但它保留了顺序,因此Int
索引是有意义的。可以使用循环代替if/let条件
for testItem in expandableCells {
if let realItem = testItem as? ExpandableCell {
print(realItem?.title)
}
}
但是,您应该看到的错误是
testItem
不能是nil
。这是因为集合的下标没有返回可选值。只是更新了问题。您要执行expandableCells[expandableCells.startIndex.advancedBy(indexPath.row)]
就像错误所说的,您不能使用Int.@VAAAA您应该为第二期打开一个新问题,因为它与第一个完全无关。我只是从集合更改为数组,你是对的,这就是方法,但现在我如何检查数组索引超出其边界的位置?expandableCells.index.contains(index)
如果这个答案满足你的问题,请投票并接受它