2016-05-10 51 views
-3

我有一套,現在我試圖讓一個對象在索引位置:如何檢查是否值爲零或者沒有從一組<T>

var testItem: ExpandableCell 
    if let object = expandableCells[indexPath.row] { 
     testItem = object as! ExpandableCell 
    } 

但我得到一個錯誤。 enter image description here

UPDATE:

我剛從SET轉換爲數組我的集合類變量,現在我有這個:

讓realItem:ExpandableCell?

if let testItem: AnyObject = expandableCells[indexPath.row] { 
     realItem = testItem as! ExpandableCell 
     print(realItem?.title) 
    } 

它編譯沒有問題,但是當我運行的代碼和索引其其邊界之外,那麼我得到以下錯誤:

enter image description here

這樣看來,我的if let說法是不加工。

Any clue?

+0

有什麼錯誤? – HAS

+0

但是,你應該看到的錯誤是'testItem'不能是'nil'。這是因爲集合的下標不返回可選項。 – HAS

+0

剛更新了問題。 – VAAA

回答

1

Set是唯一對象的無序集合。因爲它們是無序的,所以通過Int索引獲取它們是沒有意義的。

也許你打算使用Array,一個有序的對象集合。 Array並不保證其對象的唯一性,但它確實保留了排序順序,因此Int索引是有意義的。

+0

我只是從SET更改爲Array,你說得對,但現在我該如何檢查數組是否指向它的邊界? – VAAA

+0

'expandableCells.indices.contains(index)' – Alexander

+0

如果此答案滿足您的問題,請對其投票並接受它 – Alexander

0

可以使用循環相反,如果/讓條件

for testItem in expandableCells { 
     if let realItem = testItem as? ExpandableCell { 
     print(realItem?.title) 
     } 
    } 
相關問題