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)
如果这个答案满足你的问题,请投票并接受它