2012-06-19 89 views
0

我想一個巨大的NSArray保存到一個文件,然後檢索它...NSArray的保存到文件

NSURL *documentsDirectory = 
[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory 
          inDomains:NSUserDomainMask] lastObject]; 
NSURL *fileURL = [documentsDirectory 
        URLByAppendingPathComponent:@"scorecards.dgs"]; 


NSMutableArray *savedArrayOfScorecards = [NSMutableArray arrayWithContentsOfURL:fileURL]; 
[savedArrayOfScorecards addObject:currentScoreCard]; 

[savedArrayOfScorecards writeToURL:fileURL atomically:YES]; 

NSMutableArray *mynewArray = [NSMutableArray arrayWithContentsOfURL:fileURL]; 

NSLog(@"%@, %@",[[mynewArray objectAtIndex:0] objectForKey:@"info"], course); 

的NSLog的回來了......

(null), BridgeMill 

逗號兩邊應該返回哪個BridgeMill。但數組不會救...

回答

2

檢查它是否被正確保存:

if([savedArrayOfScorecards writeToURL:fileURL atomically:YES]) 
{ 
    NSLog(@"Was saved"); 
} 
else 
{ 
    NSLog(@"Houston we have a problem..."); 
} 

documentation

- (BOOL)writeToURL:(NSURL *)aURL atomically:(BOOL)atomically

您還可以使用此檢查是怎麼回事:

- (BOOL)writeToURL:(NSURL )aURL options:(NSDataWritingOptions)mask error:(NSError *)errorPtr

+0

休斯頓我們有一個問題... –

+0

阿哈哈。 :)好吧,你可以嘗試:1)檢查路徑**理論**是否正確。 2)使用第二種方法,然後檢查'NSError' – Peres

0

什麼班級是course

writeToURL只支持可以轉換爲plist格式的類型。這些類型是NSString,NSData,NSArray或NSDictionary。

如果你有你的NSArray中的其他類型,你必須archive the array