Ich habe eine Core Data-Anwendung eingerichtet mit einem ListViewController, einem DetailViewController und einem EditingViewController, wo die meisten der Bearbeitung stattfindet. Auf der ListViewController habe ich eine Grafik einer Checkbox, und ich kann zwei Bilder umschalten, indem Sie die Zeile inKönnen Sie Core-Daten auf ListViewController bearbeiten
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Auswahl ist es möglich, den Core Data Datensatz aus den ListViewController zu bearbeiten, so dass ich meine Auswahl persistent machen kann ? Ich kann die Syntax nicht ausarbeiten, um den Datensatz auszuwählen, zu bearbeiten und den Wert zu speichern - was einfach von "wahr" zu "falsch" wechselt.
jon
Danke für die schnelle Antwort! Zusatzinformation nach Antwort 1. Ihre Annahme ist richtig. Ich modelliere diese Anwendung im CoreData Books-Beispiel. Ich verwende keine Schaltfläche, sondern verwende zwei Bilder, um ein Kontrollkästchen zu aktivieren und zu deaktivieren. Ich fügte meiner Entität einen booleschen "Check" hinzu, erstellte die Header-Datei neu und fügte die Header-Datei zu meinem ListViewController hinzu. Hier ist eine vereinfachte Version der Datamodel-Header-Datei.
@interface Patient : NSManagedObject
{
}
@property (nonatomic, retain) NSString * location;
@property (nonatomic, retain) NSNumber * check;
@property (nonatomic, retain) NSString * lastName;
@end
Und hier ist meine Modifikation des Codes:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
NSManagedObject *entityObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
if (![entityObject.check boolValue]) {
entityObject.check = [NSNumber numberWithBool:YES];
cell.imageView.image = [UIImage imageNamed:@"check.png"];
}
else {
entityObject.check= [NSNumber numberWithBool:NO];
cell.imageView.image = [UIImage imageNamed:@"uncheck.png"];
}
aber das gibt mir den Fehler „Antrag auf Mitglieder überprüfen 'in etwas keine Struktur oder Union“. Ich habe überprüft, dass das neue Attribut ein boolescher Wert ist und dass die Headerdatei in den ListViewController importiert wird. Irgendwelche Gedanken?
Schließlich beseitigt dieser Code die Notwendigkeit, entityObject.check in der Datenbank zu speichern? Danke noch einmal.
Weil Sie keine benutzerdefinierten haben Sie Klassen besitzen Objektmodell erklärt, Sie können ihre Werte mit dem folgenden jeweils erhalten und eingestellt: setzen Verwendung [EntityObject setValue: [NSNumber numberWithBool: JA] forKey: @ „check“ ] und um [entityValue valueForKey: @ "check"] – Rog
Sorry, wo es EntityValue in der letzten Zeile liest sollte EntityObject sein, falls Sie das nicht herausgefunden haben. – Rog
Sie möchten vorsichtig mit Kontrollkästchen-Tasten auf dem iPhone. Benutzer tendieren dazu, Fehler doppelt zu tippen. Deshalb wurde das Schiebeschalter-Steuerelement erstellt, damit Benutzer schnell und einfach binäre Zustände einstellen können. – TechZen