[英]Alamofire with Swift - “Could not cast value of type 'Swift._SwiftDeferredNSArray' (ox10a75ebb0) to 'Photomania.PhotoInfo' (0x107ee7b90).”
[英]UItableview Could not cast value of type Swift._SwiftDeferredNSArray to NSMutableArray
因此,我有兩個類,一個用於定義我的單元格:ListTableViewCell,另一個用於定義我的表:ListTableView。 我試圖從解析服務器中提取數據以在單元格中顯示為兩個uilabel。 我在這行代碼中遇到錯誤。
self.Data = array as! NSMutableArray
它給我的錯誤是“無法將類型'Swift._SwiftDeferredNSArray'(0x107bc36b8)的值強制轉換為'NSMutableArray'(0x105f7fcd0)。”
任何解決此問題的建議。
class ListTableViewCell: UITableViewCell {
@IBOutlet weak var name: UILabel!
@IBOutlet weak var team: UILabel!
}
這是表格視圖。
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時遇到的問題相同:您仍在使用Obj-C數組。 嘗試使用Swift數組!
編輯:要回答您最近編輯的問題,您引用的對象不正確。
當它告訴您has no member object
時,這意味着您在說:
let listData:PFObject = self.Data.object(at: indexPath.row) as! PFObject
此部分專門: self.data.object(at: indexPath.row)
如果引用我上面共享的鏈接,您將看到您引用了swift數組中的對象,如下所示:
let listData:PFObject = self.Data[indexPath.row] as! PFObject
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.