2017-05-11 3 views
0

Ich habe ein neues Projekt erstellt mit Xcode 8.3.2 mit Kerndaten, die verschiedene Kerndaten Methoden aus Kerndaten Methoden mit xcode 7 erstellt haben .Können wir ersetzen App-Delegaten alte Kerndaten Methoden anstelle von neuen Kerndaten xcode 8.3 Methode

10 läuft Es ist auf iOS gibt aber Fehler beim Versuch auf iOS 9.

Neue Kerndaten Methoden wie

@synthesize persistentContainer = _persistentContainer; 

- (NSPersistentContainer *)persistentContainer { 
    // The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it. 
    @synchronized (self) { 
     if (_persistentContainer == nil) { 
      _persistentContainer = [[NSPersistentContainer alloc] initWithName:@"ieMalayalam"]; 
      [_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) { 
       if (error != nil) { 
        // Replace this implementation with code to handle the error appropriately. 
        // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. 
        NSLog(@"Unresolved error %@, %@", error, error.userInfo); 
        abort(); 
       } 
      }]; 
     } 
    } 

    return _persistentContainer; 
} 

- (void)saveContext { 
    NSManagedObjectContext *context = self.managedObjectContext; 
    NSError *error = nil; 
    if ([context hasChanges] && ![context save:&error]) { 
     // Replace this implementation with code to handle the error appropriately. 
     // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. 
     NSLog(@"Unresolved error %@, %@", error, error.userInfo); 
     abort(); 
    } 
} 

können wir ersetzen alte Kerndaten Methoden zur Unterstützung ios 9 & gleichen laufen 10 beide. ????? Bitte Hilfe

+0

Nein. Das können Sie nicht tun. – phani

Antwort

0

Ich reparierte es, indem ich die alte Kerndatenmethode (xcode 7) durch neue (xcode 8) ersetzte.

Die App läuft auf IOS 9 & 10 beide. Vielen Dank für Ihre Vision.

1

Diese Methoden sind eher eine Vorlage, um Ihnen ein Beispiel für die Implementierung von Core Data zu geben. Der erste Job, nachdem Sie ein Projekt mit Stammdaten erstellt haben, besteht in der Umstrukturierung des gesamten Systems. Sie sollten die gesamte Logik weit vom Anwendungsdelegaten weg verschieben.

Sobald Sie also ein schönes System haben, um mit den Kerndaten zu arbeiten, können Sie das gleiche System in ein anderes Projekt kopieren und im Laufe der Zeit kann Ihr System stark verbessert und erweitert werden, vielleicht sogar bereit für das Open Sourcing.

Wenn Sie nicht alle diese Wartung haben, können Sie nach einigen offenen Quellen suchen. Ich glaube, es gibt zum Beispiel ziemlich viele Coca-Pods. Ich glaube, dass Magical Record ziemlich oft benutzt wird.