Ich versuche, ein CoreData-Objekt zu bearbeiten, wenn ein Benutzer auf eine Zelle in einer UITableView basierend auf dem cell.accessoryType klickt, um anzuzeigen, ob das Element angeklickt wurde. Hier ist der aktuelle Code.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSManagedObject *itemToUpdate = [groceryArray objectAtIndex:indexPath.row];
NSLog(@"updating: %@", itemToUpdate);
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
itemToUpdate.purchased = NO;
}else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
itemToUpdate.purchased = YES;
}
// Commit the change.
NSError *error;
if (![managedObjectContext save:&error]) {
// Handle the error.
NSLog(@"Saving changes failed: %@", error);
}
}
Es scheint das richtige Objekt auszuwählen, da NSLog() das richtige Element anzeigt, aber wenn ich versuche, mit der Punktnotation zu aktualisieren, z. B. "itemToUpdate.purchased = YES;", gibt der Compiler einen Fehler aus: "request for member 'purchased' in something not a structure or union".
Ich weiß, ich bin wahrscheinlich tun dies falsch (mein erstes Projekt in Xcode) - jede Beratung würde sehr geschätzt werden!
Danke