Setup in Core Data Model speichern - nach Neustart hängt App beim Starten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Setup in Core Data Model speichern - nach Neustart hängt App beim Starten

    Hallo zusammen,

    ich bin gerade dabei, meine erste eigene App zu entwickeln. Jedoch habe ich ein Problem, und zwar möchte ich das Setup in einem Core Data Model (SQLite) speichern. Jedoch nach dem Schließen der App und dem erneuten Starten, egal ob aus der Multitasking-Leiste oder komplett neu, bleibt die App beim Starten beim Startbild hängen und macht nichts mehr. Erst wenn ich den Simulator komplett beende und das Projekt neu "baue" und starte, funktioniert die App wieder.

    Jemand eine Idee?

    Gruß

    Sven
    Gruß
    Sven
  • Kannst du mir auch sagen, was? Wäre sehr hilfreich.

    Meine LoadData sieht wie folgt aus:

    Quellcode

    1. -(void)initSetupData{
    2. PearAppDelegate * pearAppDelegate = [UIApplication sharedApplication].delegate;
    3. NSManagedObjectContext * context = pearAppDelegate.managedObjectContext;
    4. NSFetchRequest * request = [[NSFetchRequest alloc] init];
    5. NSEntityDescription * entity = [NSEntityDescription entityForName:@"Setup" inManagedObjectContext:context];
    6. [request setEntity:entity];
    7. NSError * error = nil;
    8. NSArray * results = [context executeFetchRequest:request error:&error];
    9. NSUInteger counter = [results count];
    10. if (error != nil || counter == 0){
    11. [self saveSetupData:TRUE];
    12. results = [context executeFetchRequest:request error:&error];
    13. }
    14. int sync = [results valueForKey:@"sync"];
    15. if (sync == 1){
    16. self.switchSync.on = TRUE;
    17. }else {
    18. self.switchSync.on = FALSE;
    19. }
    20. int badge = [results valueForKey:@"badge"];
    21. if (badge == 1){
    22. self.switchBadge.on = TRUE;
    23. }else {
    24. self.switchBadge.on = FALSE;
    25. }
    26. int sixdays = [results valueForKey:@"sixDays"];
    27. if (sixdays == 1){
    28. self.switchSixDays.on = TRUE;
    29. }else {
    30. self.switchSixDays.on = FALSE;
    31. }
    32. }
    Alles anzeigen
    Gruß
    Sven
  • svenbaer schrieb:

    Kannst du mir auch sagen, was? Wäre sehr hilfreich.

    Nein, kann ich leider nicht, denn dazu hast Du einfach viel zu wenige Informationen geliefert.

    svenbaer schrieb:

    Meine LoadData sieht wie folgt aus:

    Quellcode

    1. -(void)initSetupData{

    Da steht aber initSetupData

    svenbaer schrieb:

    Quellcode

    1. PearAppDelegate * pearAppDelegate = [UIApplication sharedApplication].delegate;
    2. NSManagedObjectContext * context = pearAppDelegate.managedObjectContext;
    3. NSFetchRequest * request = [[NSFetchRequest alloc] init];
    4. NSEntityDescription * entity = [NSEntityDescription entityForName:@"Setup" inManagedObjectContext:context];
    5. [request setEntity:entity];
    6. NSError * error = nil;
    7. NSArray * results = [context executeFetchRequest:request error:&error];
    8. NSUInteger counter = [results count];

    Bis hierhin sieht es ja noch ganz gut aus.


    svenbaer schrieb:

    Quellcode

    1. if (error != nil || counter == 0){
    2. [self saveSetupData:TRUE];
    3. results = [context executeFetchRequest:request error:&error];
    4. }

    Was willst Du damit erreichen?

    svenbaer schrieb:

    Quellcode

    1. int sync = [results valueForKey:@"sync"];

    Bekommst Du hier nicht vom Compiler eine Warnung? Hier wird Dir kein Integer zurückgegeben!

    svenbaer schrieb:

    Quellcode

    1. if (sync == 1){
    2. self.switchSync.on = TRUE;
    3. }else {
    4. self.switchSync.on = FALSE;
    5. }

    Als Folge kann das hier nicht das gewünschte Ergebnis liefern.


    svenbaer schrieb:

    Quellcode

    1. int badge = [results valueForKey:@"badge"];
    2. if (badge == 1){
    3. self.switchBadge.on = TRUE;
    4. }else {
    5. self.switchBadge.on = FALSE;
    6. }
    7. int sixdays = [results valueForKey:@"sixDays"];
    8. if (sixdays == 1){
    9. self.switchSixDays.on = TRUE;
    10. }else {
    11. self.switchSixDays.on = FALSE;
    12. }
    13. }
    Alles anzeigen

    Siehe oben.

    Dir fehlen noch eindeutig die Grundlagen. Beschäftige Dich zuerst mit denen, bevor Du Dich mit Core Data herumschlägst.

    Michael