Сохранение данных в список для каждого объекта или человека - PullRequest
0 голосов
/ 08 августа 2010

Я пытаюсь сохранить данные в plist в моем приложении на человека, но он сохраняется для всех, поэтому, например, если у меня есть поле для цвета глаз и я ввожу Браун в текстовое поле для Джона Доу, это спасет Браун для всех остальных, есть ли способ сохранить эту информацию на человека в приложении вместо использования plist? Мне не повезло, пытаясь:

-(NSString *)pathofFile{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsfolder = [paths objectAtIndex:0];
    return [docsfolder stringByAppendingFormat:@"data.plist"];
}

Вот код, который я на мой взгляд загрузил:

- (void)viewDidLoad {
    [self loadPerson];
    [super viewDidLoad];

    NSString *filepath = [self pathofFile];
    if ([[NSFileManager defaultManager]fileExistsAtPath:filepath]) {
        NSArray *array = [[NSArray alloc]initWithContentsOfFile:filepath];
        Drinfo.text = [array objectAtIndex:0];
        [array release];
    }

    UIApplication *app = [UIApplication sharedApplication];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(applicationWillTerminate:) name: UIApplicationWillTerminateNotification object:app];

и вот что я имею в качестве части моего метода saveperson:

NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:self.Drinfo.text];
[array writeToFile:[self pathofFile] atomically:YES];
[array release];

1 Ответ

0 голосов
/ 08 августа 2010

Вы можете использовать plist, просто создать NSDictionary для каждого человека внутри plist и добавить к нему цветную строку.Шаги будут выглядеть примерно так:

  1. Откройте файл plist из файла, установите для него значение NSDictionary и убедитесь, что оно mutable copy.
  2. Создайте новыйNSMutableDictionary и добавьте любые атрибуты к этому, например, цвет глаз.
  3. Добавьте это mutable dictionary к вашему plist dictionary с ключом, установленным на имя человека
  4. Сохраните plist
...