Hallo zusammen! Ich habe noch recht wenig Erfahrungen und lerne mich gerade in die komplette Gesichte mit SWIFT ein. An und sich sind schon ein paar schöne Fortschritte zu erkennen, aber jetzt stehe ich wiedermal vor einem Problem:
zuerst habe ich folgendes laufen lassen:
Alles anzeigen
dann habe ich ein Attribut hinzugefügt "test"
Alles anzeigen
jetzt bekomme ich immer folgende Fehler:
sehe ich das richtig, das ich mein Model nicht mehr verändern kann wenn bereits Einträge darin vorhanden sind? Nur indem ich das komplette Model lösche und ein neues hinzufüge?
zuerst habe ich folgendes laufen lassen:
Quellcode
-
- import UIKit
- import CoreData
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- var appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
- var context:NSManagedObjectContext = appDel.managedObjectContext!
- var newUser = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: context) as NSManagedObject
- newUser.setValue("Stefan", forKey: "name")
- newUser.setValue("blabla", forKey: "city")
- context.save(nil)
- var request = NSFetchRequest(entityName: "User")
- request.returnsObjectsAsFaults = false
- var results = context.executeFetchRequest(request, error: nil)
- println(results)
- for result: AnyObject in results! {
- println(result)
- }
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- }
dann habe ich ein Attribut hinzugefügt "test"
Quellcode
-
- import UIKit
- import CoreData
- class ViewController: UIViewController {
- override func viewDidLoad() {
- super.viewDidLoad()
- var appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
- var context:NSManagedObjectContext = appDel.managedObjectContext!
- var newUser = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: context) as NSManagedObject
- newUser.setValue("Stefan", forKey: "name")
- newUser.setValue("blabla", forKey: "city")
- newUser.setValue("test", forKey: "test")
- context.save(nil)
- var request = NSFetchRequest(entityName: "User")
- request.returnsObjectsAsFaults = false
- var results = context.executeFetchRequest(request, error: nil)
- println(results)
- for result: AnyObject in results! {
- println(result)
- }
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- }
jetzt bekomme ich immer folgende Fehler:
2015-02-05 15:28:22.391 CoreData2[18686:261603] CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///Users/stefanwahrendorff/Library/Developer/CoreSimulator/Devices/C9E7F978-0CDE-4507-8384-05431D4AFF92/data/Containers/Data/Application/93A8342F-5035-4A53-BF21-629D1E1CD895/Documents/CoreData2.sqlite options:(null) ... returned error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x7b0955c0 {metadata={
NSPersistenceFrameworkVersion = 519;
NSStoreModelVersionHashes = {
User = <4ecf768c 3f351584 8af221fb b500b542 387bea63 41259785 d690e365 15d59c22>;
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
""
);
NSStoreType = SQLite;
NSStoreUUID = "7D201C25-21C5-414A-A36A-C105E442ACA3";
"_NSAutoVacuumLevel" = 2;
}, reason=The model used to open the store is incompatible with the one used to create the store} with userInfo dictionary {
metadata = {
NSPersistenceFrameworkVersion = 519;
NSStoreModelVersionHashes = {
User = <4ecf768c 3f351584 8af221fb b500b542 387bea63 41259785 d690e365 15d59c22>;
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
""
);
NSStoreType = SQLite;
NSStoreUUID = "7D201C25-21C5-414A-A36A-C105E442ACA3";
"_NSAutoVacuumLevel" = 2;
};
reason = "The model used to open the store is incompatible with the one used to create the store";
}
2015-02-05 15:28:22.393 CoreData2[18686:261603] Unresolved error Optional(Error Domain=YOUR_ERROR_DOMAIN Code=9999 "Failed to initialize the application's saved data" UserInfo=0x7b092d00 {NSLocalizedDescription=Failed to initialize the application's saved data, NSUnderlyingError=0x7b0955e0 "The operation couldn’t be completed. (Cocoa error 134100.)", NSLocalizedFailureReason=There was an error creating or loading the application's saved data.}), Optional([NSLocalizedDescription: Failed to initialize the application's saved data, NSUnderlyingError: Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x7b0955c0 {metadata={
NSPersistenceFrameworkVersion = 519;
NSStoreModelVersionHashes = {
User = <4ecf768c 3f351584 8af221fb b500b542 387bea63 41259785 d690e365 15d59c22>;
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
""
);
NSStoreType = SQLite;
NSStoreUUID = "7D201C25-21C5-414A-A36A-C105E442ACA3";
"_NSAutoVacuumLevel" = 2;
}, reason=The model used to open the store is incompatible with the one used to create the store}, NSLocalizedFailureReason: There was an error creating or loading the application's saved data.])
(lldb)
sehe ich das richtig, das ich mein Model nicht mehr verändern kann wenn bereits Einträge darin vorhanden sind? Nur indem ich das komplette Model lösche und ein neues hinzufüge?