我有下面的代碼塊:爲什麼我的NSMutableArray沒有寫入plist?
NSMutableArray* mergedSymbolsArray = [NSMutableArray array];
for (NSDictionary* aSymbol in localSet) {
NSLog(@"Symbol:%@",[aSymbol valueForKey:@"symbol"]);
[mergedSymbolsArray addObject:aSymbol];
}
[Utils writeObjectToPList:mergedSymbolsArray];
tickers = [Utils getDataFromPList];
這裏是我的代碼來讀取/寫入的plist:
+ (void)writeObjectToPList:(id)myData {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mobile-watchlist.plist"];
[myData writeToFile:path atomically:YES];
}
+(NSMutableArray*)getDataFromPList
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mobile-watchlist.plist"];
NSMutableArray* myArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
NSLog(@"READING -- PList Data Count: %d", [myArray count]);
return [[NSMutableArray alloc] initWithContentsOfFile:path];
}
出於某種原因mergedSymbolsArray
不會寫入一個plist中。我不知道爲什麼?
我能夠寫出下列成的plist:
[tickers addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"GOOG", @"symbol", @"2044", @"id", nil]];
[tickers addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"AAPL", @"symbol", @"686", @"id", nil]];
[tickers addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"YHOO", @"symbol", @"4177", @"id", nil]];
[Utils writeObjectToPList:tickers];
爲什麼不寫代碼的第一個塊到的plist?
其他注意事項: 這裏是mergedSymbolsArray包含字典的例子:
{
"charts_count" = 2;
"created_at" = "2010-04-12T16:37:32Z";
exchange = NASDAQ;
"followers_count" = 259;
id = 8404;
industry = "<null>";
"messages_count" = 1436;
ric = "GRPN.O";
sector = "<null>";
symbol = GRPN;
title = Groupon;
"updated_at" = "2011-09-05T04:17:56Z";
}
我猜將writeToFile:原子的方法失敗,因爲不能寫?
+(void)writeObjectToPList:(id)myData。嘗試更改(id)到NSMutableArray ....類型 – booleanBoy
@booleanboy我將其更改爲NSMutableArray,不幸的是相同的結果 –
將數據添加到mergedSymbolsArray後,使用NSLog檢查以查找數據是否確實正在存儲....並且還嘗試使用alloc而不是自動釋放數組... – booleanBoy