Ich habe ein großes Problem mit einigem I-Code, den ich in Swift konvertiert habe. Wenn self.tableView.endUpdates()
Ansicht meines Tisches Aufruf bleibt leer und ich erhalte die folgenden Fehler:Assertionsfehler in - [UITableView _endCellAnimationsWithContext:] beim Konvertieren von Objective-C in Swift
Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/UITableView.m:1501
Seltsam genug, wenn der gleiche Code in Objective-C geschrieben wurde dieser Fehler nicht bis angezeigt wird.
Die Tabellenansicht Datenquelle und Delegate sind immer noch in Objective-C und werden von vielen anderen View-Controllern im Projekt verwendet. Hier
ist der Code in Objective-C:
self.dataSource.itemArray = [self.userList copy];
NSMutableArray *indexPaths = [NSMutableArray new];
for (NSUInteger i = (offset); i < (end); i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
[indexPaths addObject:indexPath];
}
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:[indexPaths copy]
withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
Und dies ist der gleiche Code, aber dann in swift:
self.dataSource.itemArray = self.userList.copy() as! [User]
var indexPaths = [NSIndexPath]()
for i in offset...end {
let indexPath = NSIndexPath(forRow: i, inSection: 0)
indexPaths.append(indexPath)
}
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths(indexPaths, withRowAnimation: .Fade)
self.tableView.endUpdates()
Die tableView:numberOfRowsInSection:
korrekt aufgerufen wird, und gibt das gleiche in beiden Fällen . Auch die Zelle ist korrekt registriert.
Gibt es ein bekanntes Problem, oder ist nur, dass ich eine Objective-C-Basisklasse in Swift nicht erweitern kann.
Üblicher ist es zu schreiben: 'für i in offset ..
fiks
Das könnte ein Problem sein, aber wenn ich einen' NSFecthedResultsController' benutze, bekomme ich immer noch das gleiche Problem, obwohl ich es benutze Objective-C-Klasse, die in Objective-C-Version funktioniert. – rckoenes
@rckoenes Haben Sie das Problem behoben, auf das ich hinwies und immer noch denselben Fehler erhalte? – njuri