ich einen iOS-App mache, aber ich erhalte immer diese Fehlermeldung:'NSInternalInconsistencyException', Grund: 'Versuch, Reihe 0 in Abschnitt einzufügen 0, aber es gibt nur 0 Abschnitte nach dem Update'
'NSInternalInconsistencyException', reason: 'attempt to insert row 0 into section 0, but there are only 0 sections after the update'
I habe diese Frage seit 2 Tagen recherchiert, aber ich weiß nicht, was los ist. Ich setze meinen Code unten.
import UIKit
import FirebaseDatabase
import FirebaseAuth
class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var databaseRef = Database.database().reference()
var loggedInUser:AnyObject?
var loggedInUserData:NSDictionary?
@IBOutlet weak var aivLoading: UIActivityIndicatorView!
@IBOutlet weak var homeTableView: UITableView!
var posts = [NSDictionary]()
override func viewDidLoad() {
super.viewDidLoad()
self.loggedInUser = Auth.auth().currentUser
self.databaseRef.child("users").child(self.loggedInUser!.uid).observeSingleEvent(of: .value) { (snapshot: DataSnapshot) in
self.loggedInUserData = snapshot.value as? NSDictionary
self.databaseRef.child("posts").child(self.loggedInUser!.uid).observe(.childAdded, with: { (snapshot: DataSnapshot) in
self.posts.insert(snapshot.value as! NSDictionary, at: 0)
self.homeTableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: UITableViewRowAnimation.automatic)
self.aivLoading.stopAnimating()
}){(error) in
ProgressHUD.showError("There was an error, try again")
}
}
self.homeTableView.rowHeight = UITableViewAutomaticDimension
self.homeTableView.estimatedRowHeight = 140
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: HomeTableViewCell = tableView.dequeueReusableCell(withIdentifier: "HomeTableViewCell", for: indexPath) as! HomeTableViewCell
let post = posts[(self.posts.count-1) - (indexPath.row)]["text"] as! String
cell.configure("Anonymous", post: post)
return cell
}
}
In meinem Code, bezieht er sich auf einen dequeueReusableCell, mit der Kennung HomeTableViewCell
, die eine Swift-Datei. Hier ist der Code für die Swift-Datei:
import UIKit
import FirebaseDatabase
import Firebase
import FirebaseAuth
class HomeTableViewCell: UITableViewCell {
@IBOutlet weak var nameConstant: UILabel!
@IBOutlet weak var post: UITextView!
override open func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
open func configure(_ nameConstant: String, post: String) {
self.post.text = post
self.nameConstant.text = "Anonymous"
}
}
Ich weiß, gibt es ähnliche Fragen zu mir, sondern viele von ihnen sind in Objective-C. Ich habe auch die Schnellen angeschaut, aber sie helfen nicht.
Wenn jemand irgendwelche Ideen hat, das zu beheben, wäre das großartig. Danke im Voraus!
Mögliche Duplikat [NSInternalInconsistencyException‘, Grund: 'Versuch, Zeile 0 in Abschnitt 0 einzufügen, aber nach dem Update gibt es in Abschnitt 0 nur 0 Zeilen' (https://stackoverflow.com/questions/11706254/nsinternalinconsistencyexception-reason-attempt-to-insert-row-0 (into-section) – DonMag
Haben Sie die Delegate/Datenquelle Ihrer Tabellenansicht auf Ihren View-Controller gesetzt? – dan
Wie ich DonMag sagte, ist diese Frage für Objective-C. Ich habe ein Problem in Swift. –