所以我有兩個類定義礦山我的單元格:ListTableViewCell,另一個定義我的表:ListTableView。我試圖從一個分析服務器拉取數據,以顯示在單元格中的兩個uilabels。我在這行代碼中遇到錯誤。UItableview無法將Swift._SwiftDeferredNSArray類型的值轉換爲NSMutableArray
self.Data = array as! NSMutableArray
這是給我的錯誤 「無法投類型的值 'Swift._SwiftDeferredNSArray'(0x107bc36b8)爲 'NSMutableArray的'(0x105f7fcd0)。」
任何建議來解決這個問題。
class ListTableViewCell: UITableViewCell {
@IBOutlet weak var name: UILabel!
@IBOutlet weak var team: UILabel!
}
這是tableview。
class ListTableViewController: UITableViewController{
var Data: NSMutableArray = NSMutableArray()
func loadData(){
Data.removeAllObjects()
let findData:PFQuery = PFQuery(className: "data")
findData.getFirstObjectInBackground() {(objects: PFObject?, error: Error?) -> Void in
if !(error != nil){
for object in [objects] as [PFObject?]{
self.Data.add(object)
}
}
let array:NSArray = self.Data.reversed() as NSArray
self.Data = array as! NSMutableArray
self.tableView.reloadData()
}
}
override func viewDidAppear(_ animated: Bool) {
self.loadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return Data.count
}
override func tableView(_ tableView: UITableView?, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:ListTableViewCell = tableView!.dequeueReusableCell(withIdentifier: "listCell", for: indexPath) as! ListTableViewCell
let listData:PFObject = self.Data.object(at: indexPath.row) as! PFObject
cell.name.text = listData.object(forKey: "name") as? String
return cell
}
}
編輯***
更改:
var Data = [PFObject]()
Data.removeAllObjects() which I changed to Data.removeAll()
self.Data.add(object) which I changed to aelf.Data.append(object)
完全移除該
let array:NSArray = self.Data.reversed() as NSArray
self.Data = array as! NSMutableArray
這最後一個錯誤,我不能修復是這個
let listData:PFObject = self.Data.object(at: indexPath.row) as! PFObject
它拋出一個錯誤說[PFObject]沒有成員對象。
如果使用Swift數據類型而不是NS *的東西? –