2009-07-29 2 views
0

Мое приложение iphone записывает пары ключ-значение в словарь в файле plist. Я в основном сохраняю счет пользователя, когда они играют в игру. Все это прекрасно и денди, но каждый раз, когда я запускаю приложение и получаю новые оценки, новые значения сохраняются по старым значениям. Как добавить информацию в plist каждый раз, когда пользователь обращается к приложению, а не переписывает файл? Я хочу сохранить все оценки, а не только самые последние.Сохранять дополнительную информацию в plist каждый раз, когда я запускаю приложение? (iphone)

код:

-(void)recordValues:(id)sender { 

    //read "propertyList.plist" from application bundle 
    NSString *path = [[NSBundle mainBundle] bundlePath]; 
    NSString *finalPath = [path 
          stringByAppendingPathComponent:@"propertyList.plist"]; 
    dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath]; 

    //create an NSNumber object containing the 
    //float value userScore and add it as 'score' to the dictionary. 
    NSNumber *number=[NSNumber numberWithFloat:userScore]; 
    [dictionary setObject:number forKey:@"score"]; 

    //dump the contents of the dictionary to the console 
    for (id key in dictionary) { 
     NSLog(@"memory: key=%@, value=%@", key, [dictionary 
               objectForKey:key]); 
    } 

    //write xml representation of dictionary to a file 
    [dictionary writeToFile:@"/Users/rthomas/Sites/propertyList.plist" atomically:NO]; 
} 

ответ

1

Вы устанавливаете объект в число для ключа счет

NSNumber *number=[NSNumber numberWithFloat:userScore]; 
[dictionary setObject:number forKey:@"score"]; 

Вместо этого то, что вы хотите сделать, это есть массив или что-то в этом роде, так

NSNumber *number=[NSNumber numberWithFloat:userScore]; 
    NSMutableArray *array=[dictionary objectForKey:@"score"] 
    [array addObject:number] 
    [dictionary setObject:array forKey:@"score"] 

это должно делать то, что вы задаете

+0

Ах. Так вот что такое массив. Спасибо! – Evelyn

+0

У меня все еще есть проблемы. Вы говорите, что мне нужно создать массив словарей? – Evelyn

+0

Нет, пусть ключ будет массивом чисел, а не числом, массив - это список объектов ... так что вы можете помещать как любые числа в виде ud как ... Вы хотите сделать его изменчивым массив, чтобы вы могли добавлять и удалять его. – Daniel

1

Вы хотите сначала загрузить старые значения в NSArray или NSDictionary, как сказал Даниэль.

Вы добавляете новое значение в коллекцию. (может быть, какая-то сортировка или что-то еще)

Затем вы записываете новую коллекцию обратно на диск.

+0

Это тоже помогает. :) – Evelyn

 Смежные вопросы

  • Нет связанных вопросов^_^