Ich habe eine Routine, die vergleicht, wenn ein Datensatz zuletzt auf einer Website mit dem gleichen Datensatz in CoreData
auf einem iPad gespeichert aktualisiert wurde. Hier ist obsLastUpdated ein Feld in CoreData als Typ Date
festgelegt.Welches Format ist ein Date in CoreData - Date oder String?
Lesen der Daten aus CoreData
in eine NSDate:
NSDate *iPadDate = [[self.recordDetails objectAtIndex:0] obsLastUpdated]; //gets the date from CoreData
ich diese Warnung:
Inkompatible Zeigertypen 'NSDate *' mit einem Ausdruck des Typs 'NSString *' initialisieren
Es ist nur eine Warnung und alles funktioniert noch. Wenn ich versuche und vergleiche dies NSDate
iPadDate mit einem anderen NSDate
gibt es keine Fehler und alles funktioniert. Aber ich möchte der Warnung auf den Grund gehen.
Wenn ich von CoreData
als Zeichenfolge lesen und in eine NSDate
konvertieren, kann ich nicht scheinen, die Formatierung richtig zu bekommen und die App stürzt ab. Ich habe versucht:
NSString *iPadDateStr = [[self.recordDetails objectAtIndex:0] obsLastUpdated];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *iPadDate = [dateFormat dateFromString: iPadDateStr];
Ich weiß, dass CoreData
nicht speichert das Datum als NSDate
aber wie genau wird er gespeichert und wie komme ich um die Warnung?
Coredata Entity:
UPDATE:
Der Fehler in der Klasse war, wo obsLastUpdated als NSString erklärt wurde. Geändert zu NSDate und alles ist gut.
zeigen Bitte einen Screenshot des Datenmodells Einheit Kern. – Fogmeister
Dann haben Sie das Kerndatenmodell erstellt, um einen String zu haben. Kein Date. Können Sie einen Screenshot Ihres Kerndatenmodus zeigen? Und schließe den Objektcode mit ein. – Fogmeister
und der Code für die Klasse? Irgendwas stimmt nicht. Zeig uns, was falsch ist. Nicht was richtig ist. :-) Wenn Sie ein Attribut als Datum in den Kerndaten setzen, wird ein NSDate zurückgegeben. Hast du sichergestellt, dass du einen sauberen Build gemacht hast? Haben Sie es kürzlich von String zu Date geändert? – Fogmeister