我從Web服務器接收json文件。我正在使用JSON文件解析(到數組和字典中)並使用收到的信息。但是在某個時候,我試圖保存一本字典並且沒有寫入該文件。該字典將具有以下格式:iphone - 將NSDictionary寫入文件的問題
{
author = "<null>";
category = {
"created_at" = "2011-02-06T18:11:39Z";
id = 1;
name = animals;
};
"created_at" = "<null>";
id = 16;
"mobile_user_id" = "<null>";
"rating_count" = "4.33333333333333";
status = 1;
text = "A boy at a cinema notices what looks like a bear sitting next to him \"Are you a bear? \"\"Yes \"\"What are you doing at the movies? \"\"Well, I liked the book! \"";
title = "Various animal jokes";
}
我用下面的代碼保存:
-(BOOL)savePlistFiles:(int)fileNumber
{
BOOL success = NO;
switch (fileNumber) {
case SAVE_FAVORITES_JOKES:
success = [self.favoriteJokes writeToFile:self.favSaveFilePath atomically:YES];
break;
case SAVE_RATED_JOKES:
success = [self.ratedJokes writeToFile:self.ratingSaveFilePath atomically:YES];
break;
default:
NSLog(@"Improper file to save");
success = NO;
break;
}
return success;
}
-(BOOL)addJokeToFavorite:(NSDictionary*)joke
{
NSLog(@"Joke: %@",joke);
BOOL success = NO;
[self.favoriteJokes addObject:joke];
for(NSDictionary* dict in self.favoriteJokes)
NSLog(@"%@", dict);
success = [self savePlistFiles:SAVE_FAVORITES_JOKES];
return success;
}
我打電話addJokeToFavorite用字典。在addJokeToFavorite方法中,self.favoriteJokes是一個屬性,它也被保留。 savePlistFiles方法總是返回成功=否。我無法指出它爲什麼不寫入文件的原因。 我也嘗試創建文件,然後寫入。它也沒有工作。 我也嘗試刪除其值仍然沒有輸出的鍵。
我使用下面的代碼來創建plist文件:
NSFileManager* fm = [NSFileManager defaultManager];
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];
self.favSaveFilePath = [documentsDirectory stringByAppendingPathComponent:@"Favorites.plist"];
看起來你實際上正在寫一個NSArray到plist文件。你如何初始化self.favoriteJokes? – Felix 2011-03-23 12:07:28
我創建了屬性@property(nonatomic,retain)NSMutableArray * favoriteJokes;然後添加@synthesize favoriteJokes;在實現中,並在viewDidLoad中,我使用self.favoriteJokes = [NSMutableArray數組]; – Satyam 2011-03-23 13:02:42