проблема в записи NSDictionary в файл - PullRequest
0 голосов
/ 23 марта 2011

Я получаю файл json с веб-сервера. Я использую файлы JSON для разбора (в массивы и словари) и использования полученной информации. Но в какой-то момент я пытаюсь сохранить словарь и не удается записать файл. Диктовка будет иметь следующий формат:

{
    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"];

1 Ответ

0 голосов
/ 23 марта 2011

Вы должны проверить self.favSaveFilePath и self.ratingSaveFilePath.

Не могли бы вы дать мне больше информации об этом?

...