iCloud: App crashed wenn Cloud in den Settings geändert wird

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

  • iCloud: App crashed wenn Cloud in den Settings geändert wird

    Hallo,

    ich arbeite gerade mit iCloud.

    Mir kracht dauernd die App im Hintergrund weg, wenn ich in den Settings die Cloud Einstellungen ändere.

    Tja, mehr Infos gibts nicht :(

    Keine Logs, der allgemeine Exception Breakpoint greift auch nicht, d.h. ich seh nur das in main() der crash war.

    Wenn ich die App dann neu starte, ist alles OK. Ist die Cloud eingeschaltet, liefert _folderURLCloudRoot = [[[NSFileManager alloc] init] URLForUbiquityContainerIdentifier: nil]; die URL, bzw. eben nil, wenn die Cloud für die App ausgeschaltet wurde.

    Muss ich da irgendwas in meiner App abfangen, wenn sich der Cloud Status ändert?

    Gruß und Dank
    Manfred
    Seminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht.
  • Genau das will ich machen, aber so weit komme ich garnicht.

    Es passiert auch noch nicht wirklich was mit der iCloud.

    Das ist alles ganz am Anfang. Ich habe einen Datastore, der überprüft bei der initialisierung ob die Cloud verfügbar ist und mehr passiert da noch nicht.

    Ich starte die App über Xcode, der Datastore wird in der applicationDidFinishLaunching... initialisiert, wobei er eben diesen Check async. macht.

    Dann geh ich in die Systemeinstellungen, schalte die Cloud für die App ein oder aus, und bums, kracht sie imHintergrund weg.

    Wobei ich gerade eben so den verdacht habe, das das nur passiert, wenn sie am Debuffer hängt...


    Quellcode

    1. - (void) checkForCloudInBackground
    2. {
    3. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    4. dispatch_async(queue, ^{
    5. _folderURLCloudRoot = [[[NSFileManager alloc] init] URLForUbiquityContainerIdentifier: nil];
    6. if (_folderURLCloudRoot == nil)
    7. {
    8. NSLog(@"no cloud available");
    9. _cloudAvailable = NO;
    10. }
    11. else
    12. {
    13. NSLog(@"cloud available");
    14. _cloudAvailable = YES;
    15. NSLog(@"cloud %@", _folderURLCloudRoot);
    16. }
    17. if (_delegate != nil && [_delegate respondsToSelector:@selector(storeIsReadyToOperate:)])
    18. {
    19. dispatch_async(dispatch_get_main_queue(), ^{
    20. [_delegate storeIsReadyToOperate: self];
    21. });
    22. }
    23. });
    24. }
    Alles anzeigen
    Seminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht.