#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 =)