2015-04-17 19 views
6

Çekirdek verileri kullanmak önce yayınlanmış bir uygulaması vardır.
Şimdi izle kiti ve bugün uzantısı desteğini eklemek istiyorum.Çekirdek veri ortak konteynere veri taşımak

Verileri kurtardı kaybetmek önceki kullanıcı olmadan paylaşılan kabın içine çekirdek veri taşımak gerekir

, nasıl yapabileceğim en iyi şekilde bu? İşte

cevap

4

Sen Çekirdek Data Stack taşıyabilir. A fuller answer can be found here ancak kısa versiyon şudur: bu dosyayı kullanarak bir çekirdek Veri yığını kurmak yaparsa verilerin eski olmayan grup kopya

  • var

    1. kontrol eğer. Daha sonra yeni konuma taşımak için migratePersistentStore:toURL:options:withType:error: kullanın. Ardından eski kopyayı kaldırın.
    2. eski sürüm yoksa
    3. , her zamanki gibi yeni kopyasıyla Çekirdek Veri kurdu.

  • (. Stephen's cevap sorun Çekirdek Veri yığını her zaman doğru değildir tek SQLite dosya olduğunu varsayar olmasıdır)

    +0

    Thaks ile daha iyi olabilir ama hareket, benim için çalıştı –

    2

    benim app paylaşılan kaba çekirdek verilerini taşındı nasıl. Uygulama başladığında bunu yapıyorum.

    NSUserDefaults* sharedDefs = [GPMapCore sharedCore].sharedUserDefaults; 
    if (![sharedDefs boolForKey:@"CoreDataMovedToExtension"]) 
    { 
        NSURL* oldLocation = GET_LOCATION_OF_CORE_DATA_SQLITE_FILE(); 
        NSURL* newLocation = GET_LOCATON_TO_MOVE_THE_SQLITE_FILE_TO(); 
    
        if ([[NSFileManager defaultManager] fileExistsAtPath:[oldLocation filePathString]]) 
        { 
         //Check if a new file exists. This can happen when the watch app is run before 
         //Topo Maps+ runs and move the core data database 
         if ([[NSFileManager defaultManager] fileExistsAtPath:[newLocation filePathString]]) 
         { 
          [[NSFileManager defaultManager ] removeItemAtURL:newLocation error:nil]; 
         } 
    
         [[NSFileManager defaultManager] moveItemAtURL:oldLocation toURL:newLocation error:nil]; 
        } 
    
        [sharedDefs setBool:YES forKey:@"CoreDataMovedToExtension"]; 
        [sharedDefs synchronize]; 
    } 
    
    +0

    yeterince moveItem mı ya da gerçekten migratePersistentStore gerekiyor: toURL : seçenekleri: withType: hata: bir migrate –

    +0

    , o cevap daha tam olduğunu ... –

    İlgili konular