2011-11-15 57 views
0

當我從iOS 4+更新到iOS 5時,我在自己的應用程序中丟失了所有數據。我也升級到OSX Lion和Xcode 4.我在iTunes中備份我的iPhone,並能夠使用iPhone Backup Extractor獲取數據。iOS 5中的NSDocumentDirectory導致應用程序數據丟失

我我的應用程序數據保存到以下列方式文件:

- (NSString *)iouArrayPath 
{ 
    // Standard way of getting file path for iOS 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *dir = [paths objectAtIndex:0]; 
    NSLog(@"Directory: %@", dir); 

    return pathInDocumentDirectory(@"IouTableArray.data"); 
} 

- (void)archieveIou 
{ 
    NSLog(@"archieveIou"); 

    // Get the path to the document directory 
    NSString *iouPath = [self iouArrayPath]; 

    // grab the objects to archieve 
    NSMutableArray *iouTableArray = [iouViewController iouTableArray]; 

    // ARCHIVE DATA 
    NSMutableData *data = [NSMutableData data]; 
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
    [archiver encodeObject:iouTableArray forKey:@"IouTableArray"]; 
    [archiver finishEncoding]; 
    [data writeToFile:iouPath atomically:YES]; 

    if([data writeToFile:iouPath atomically:YES]) { 
     NSLog(@"writeToFile success!"); 
    } 
    else { 
     NSLog(@"writeToFile failed"); 
    } 
    [archiver release]; 
} 

這就是我試圖理解。我在Xcode 4中打開項目,從備份複製.data文件並將其粘貼到/iPhone Simulator/5.0/Applications/Some digit/Documents。理論上,當應用程序啓動時,它將查看該文件夾並加載.data文件(如果存在)。它不是。但是,如果我創建一些測試數據並保存,該應用程序將正常工作。它將替換具有相同文件名的備份文件,並在重新啓動應用程序時正確加載它。

這讓我想知道是否有一些NSCoder/XCode3/XCode4或iOS4和iOS5之間的演變。

有誰知道發生了什麼事?一旦我明白了這一點,我打算使用備份數據文件並將其複製到當前應用程序/ Document文件夾中。其實,想一想,我不知道該怎麼做。該應用程序的/ Document文件夾駐留在手機中。我將不得不查看是否可以使用iTunes並向數據注入應用程序。無論如何,首先是第一件事!瞭解系統。

謝謝!

回答

0

事實證明,iOS5安裝應用程序的舊版本。奇怪,但要確保你的所有供應擺平了。

相關問題