ich ausprobiert Druck, wie viele Zeilen und Abschnitte in der Tableview während des Update tatsächlich waren, die mich habe zu denken, wie viele Abschnitte bin ich in der Tabellenansicht Datenquelle Methode zurückkehren ... und das war der Täter :
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 0;
}
Stellen Sie sicher, 1 zurückkehren und nicht 0.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
mindestens gelöst das Problem für mich ...
UPDATE:
ich wieder das gleiche Problem bin, nachdem es eine Zeit lang arbeitet. Ich hatte die App ein wenig modifiziert. Meine erste Ansicht ist eine TableView und wenn Sie auf die Plus-Schaltfläche oben rechts klicken, erhalten Sie eine weitere Tabelle, in die Sie Informationen eingeben können. Wenn Sie auf Fertig klicken, werden die Informationen zum Modell Core Data hinzugefügt mit diesem Code:
- (IBAction)doneButtonPressed:(UIBarButtonItem *)sender
{
MoneyBadgeAppDelegate *appDelegate =
[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context =
[appDelegate managedObjectContext];
NSManagedObject *newMoment;
newMoment = [NSEntityDescription
insertNewObjectForEntityForName:@"SpendingMoment"
inManagedObjectContext:context];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *modifiedDate = [dateFormat dateFromString: self.dateTextField.text];
[newMoment setValue: modifiedDate forKey:@"date"];
[newMoment setValue: descTextField.text forKey:@"desc"];
[appDelegate.eventsArray insertObject:newMoment atIndex:0];
NSError *error;
[context save:&error];
[self dismissViewControllerAnimated:YES completion:nil];
}
Und ich bestätigte es in das Core Data-Modell durch das Drucken auf die Konsole des folgend in meiner viewDidAppear Methode erfolgreich gesetzt wird bei der Rückkehr zurück zum ersten Bildschirm.
-(void)viewDidAppear:(BOOL)animated{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SpendingMoment"
inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *items = [self.managedObjectContext
executeFetchRequest:fetchRequest error:&error];
for (SpendingMoment *moment in items) {
NSLog(@"Date: %@, Desc: %@", [moment date], [moment desc]);
}
[self addEvent];
Und dann hat mein addEvent Methode dies:
- (void)addEvent {
[self.tableScreen beginUpdates];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableScreen insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[self.tableScreen reloadData];
[self.tableScreen endUpdates];
@try{
[self.tableScreen scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
@catch(NSException *exception){
}
}
Jede Idee, was das Problem diesmal ist ??? Vielen Dank!
i bereits das tat .. [timeZoneNames insert: @ "HALLO" atIndex: 0]; Anzahl der Zeilen sind immer mehr als 1. Noch bekomme ich diesen Fehler .. – insomiac
Rückgabetyp von numberOfRowsInSection ist [timeZoneNames count]; Ist es in Ordnung, insertRowsAtIndexPaths ohne beginUpdates und endUpdates zu verwenden? – insomiac
@Aby Von "-beginUpdates" -Dokumentation: "Rufen Sie diese Methode auf, wenn nachfolgende Einfüge-, Lösch- und Auswahlvorgänge (z. B. cellForRowAtIndexPath: und indexPathsForVisibleRows) gleichzeitig animiert werden sollen." Es wird verwendet, um mehrere UI-Vorgänge in einem einzigen UI-Vorgang zu gruppieren: Sie haben nur einen Vorgang. –