2016-09-21 67 views
-1

我有升級SWIFT 2.3 SWIFT 3,我得到這個錯誤問題上不明確的參考成員「下標」 swift3

曖昧參考成員「下標」 swift3

這裏代碼

var cellDescriptors: [[String:Any]]! 

    func loadCellDescriptors() { 
    if let path = Bundle.main.path(forResource: "ProfileDescriptor", ofType: "plist") { 
     cellDescriptors = NSMutableArray(contentsOfFile: path) 
     getIndicesOfVisibleRows() 



     tableView.reloadData() 
    } 
} 


if cellDescriptors[indexPath.section][indexOfTappedRow]["isExpanded"] as! Bool == false { 
      shouldExpandAndShowSubRows = true 
     } 

我得到的錯誤在這條線

if cellDescriptors[indexPath.section][indexOfTappedRow]["isExpanded"] as! Bool == false 

給我任何建議,我怎麼能解決這個

+0

感謝您的回覆,但我已經嘗試過,但它不工作 –

+0

沒有解決得到錯誤 –

+0

是的但不工作 –

回答

1

不能使用在斯威夫特3訂閱的鏈條沒有告訴編譯器的中間類型

let section = cellDescriptors[indexPath.section] as! [Any] 
let rowItem = section[indexOfTappedRow] as! [String:Any] 
if rowItem["isExpanded"] as! Bool == false { 
     shouldExpandAndShowSubRows = true 
} 

和往常一樣,從來沒有使用可變基金會收藏在Swift中輸入NSMutableArray/Dictionary,除非你完全沒有選擇。他們不能被橋接到Swift,他們缺乏類型信息。

+0

感謝它,當我聲明讓section = cellDescriptors [indexPath.section] as! [任何]我得到這個錯誤從'[字符串:任何]轉換爲無關類型'[任何]'總是失敗 –

+0

然後你的鏈接是錯誤的。根據你的代碼'cellDescriptors'應該包含一個數組,因爲'indexOfTappedRow'似乎是一個整數。 '[String:Any]'由鍵('String')下標 – vadian