Добавление NSArray в .plist

#ios #xcode #uitableview #plist

#iOS #xcode #uitableview #plist

Вопрос:

Я добавляю NSString в NSArray и считываю его обратно в другом Tableview, который работает безупречно.

В моем детальном представлении:

     NSString *documentDirectory = [self applicationDocumentsDirectory];
    NSString *path = [documentDirectory stringByAppendingPathComponent:@"Favs.plist"];

    NSArray *Array = [[NSArray alloc] initWithObjects:self.title, nil];

    [Array writeToFile: path atomically:YES];
  

В моем FavTableView:

 NSString *documentDirectory = [self applicationDocumentsDirectory];
NSString *path = [documentDirectory stringByAppendingPathComponent:@"Favs.plist"];

tempArray = [[NSArray alloc] initWithContentsOfFile:path];

array = [[NSMutableArray alloc] initWithArray:tempArray copyItems:YES];

NSLog(@"array is: %d", [array count]);
  

Но если я хочу загрузить в другом подробном представлении другую строку в свой массив, она перезаписывает старое значение. Как мне этого избежать?

Ответ №1:

Вам нужно создать NSDictionary или NSArray, которые будут содержать ваши массивы, и записать в файл этот глобальный словарь или массив. Если вам нужно добавлять массивы один за другим, вам нужно выполнить следующие шаги: 1. Инициализируйте словарь содержимым существующего файла 2. Создайте изменяемую копию словаря, созданного на шаге #1 3. Добавьте новый массив в словарь 4. Запишите обновленный словарь в файл

Если глобальный массив лучше соответствует вашим потребностям, чем глобальный словарь, шаги те же, но используйте array вместо dictionary =)