這裏是我的問題:我有一個plist文件,它有一個簡單的支撐杆: 根對象是一個數組,並且在數組中有2個部分,每個部分都是包含2對鍵值數據的字典:如何從swift中獲取數據?
,我要創建一個的tableView展現DATAS,但我不能讓含量超出了數組:
var plistArray = [AnyObject]()
有人能幫助我嗎?
這裏是我的問題:我有一個plist文件,它有一個簡單的支撐杆: 根對象是一個數組,並且在數組中有2個部分,每個部分都是包含2對鍵值數據的字典:如何從swift中獲取數據?
,我要創建一個的tableView展現DATAS,但我不能讓含量超出了數組:
var plistArray = [AnyObject]()
有人能幫助我嗎?
你需要在每個級別妥善投:
if let innerArray = plistArray[0] as? [AnyObject] {
if let dataDic = innerArray[indexPath.row] as? [String:String] {
if let imageName = dataDic["Pic"] {
cell?.imageView?.image = UIImage(named: imageName)
}
}
}
但爲什麼您使用AnyObject
當你知道什麼plist中含有?使用適當的類型。您知道這是一個包含字符串鍵和字符串值的字典數組數組。
var plistArray = [[[String:String]]]()
然後,所有你需要的是:
if let imageName = plistArray[0][indexPath.row]["Pic"] {
cell?.imageView?.image = UIImage(named: imageName)
}
非常感謝,我能再問一個問題嗎?如果我想在swift中聲明一個變量,var array:array和var array:[Any]?'之間的區別是什麼,以及如何聲明一個空的數組? var array:[]'or'var array:[]()'似乎不起作用 – Neko
我可以建議你花時間閱讀[Swift Programming Language](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language /)由Apple提供的書。它會回答這樣的基本問題。 – rmaddy
@rmaddy已經出色地回答了你的問題。我只想解釋上面的第二個錯誤(他爲你解決了這個錯誤)。當您定義imgaName時,它位於if語句的{}內部。一旦將if語句放在後面,imgaName就會消失。它只存在於{}內。 – Mozahler
謝謝,我的錯誤XD – Neko