に型Swift._SwiftDeferredNSArrayの値をキャストできませんでしたので、私は1つが地雷私のセルを定義する2つのクラスがあります:ListTableViewCellを、そしてもう一つは、私のテーブルを定義します:ListTableView。私はセル内の2つのuilabelsとして表示する解析サーバーからデータを取得しようとしています。私はこのコード行でエラーに遭遇しています。それは私にエラーを与えているはのUITableViewはNSMutableArrayの
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
}
}
EDIT ***変更
:完全に私は修正することはできません。この
let array:NSArray = self.Data.reversed() as NSArray
self.Data = array as! NSMutableArray
この最後のエラーを削除
var Data = [PFObject]()
Data.removeAllObjects() which I changed to Data.removeAll()
self.Data.add(object) which I changed to aelf.Data.append(object)
はこの1
let listData:PFObject = self.Data.object(at: indexPath.row) as! PFObject
です
これは[PFObject】なしメンバオブジェクトを持っていないというエラーをスローします。
NS *の代わりにSwiftデータ型を使用するとどうなりますか? –