извлекать данные из plist и затем постоянно хранить на мобильном телефоне tableview? - PullRequest
0 голосов
/ 15 июля 2010

В моем приложении один является mainviewcontroller, который является подклассом uiTableviewcontroller и хранит данные из plist при нажатии на конкретную ячейку, отображает detailviewcontroller (dvc), который является подклассом uiviewcontroller. У dvc есть текстовое поле и кнопка. Фактически, когда я нажимаю на кнопку, я записываю текст текстового поля на tableviewcell через plist, но это на самом деле запись данных временно, но я хочу записывать данные постоянно в tableview, что я могу сделать для этого. Это приложение на основе навигации?

Ответы [ 3 ]

0 голосов
/ 15 июля 2010

Хорошо. Как вы загружаете свои ячейки таблицы? Вы уверены, что значение для col1 имеет тип NSString? Вы, вероятно, должны использовать setObject: forKey: вместо SetValue: forKey: .. Табличное представление не обновляется вообще, или это просто, что он не сохраняется после выхода? Вы тестируете на симуляторе или устройстве? Пакет приложений является каталогом только для чтения на устройстве, но не в симуляторе. Вы должны использовать:

NSString * rootPath = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, ДА) objectAtIndex: 0];

NSString * plistPath = [rootPath stringByAppendingPathComponent: @ "listData.plist"];

0 голосов
/ 15 июля 2010

Попробуйте:

Загрузка списка в словарь:

//Get the path to documents directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"listData.plist"];

//if the file does not exist in documents directory, then load from the bundle.
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
   plistPath = [[NSBundle mainBundle] pathForResource:@"listData" ofType:@"plist"];
}

//load plist into NSMutableDictionary.
nes.plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 

Сохранение словаря в список:

//Get the path to documents directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"listData.plist"];

//Write to documents directory! NOT bundle!!
[nes.plistDict writeToFile:plistPath atomically: YES]; 

Также используйте: [nes.plistDict setObject:txtName.text forKey: @ "col1"];Не: [nes.plistDict setValue: txtName.text forKey: @ "col1"];

Если это не поможет, могу ли я увидеть ваш cellForRowAtIndexPath в главном контроллере?

0 голосов
/ 15 июля 2010

не могли бы вы показать нам код?

Какой код для кнопки действия? Как перезагрузить представление таблицы?

Полагаю, вы читаете листинг в NSDictionary? Затем загрузка tableviews cell.text из значений в словаре? Когда вы нажимаете кнопку, вы записываете текстовое поле в NSDIctionary? Вы помните, чтобы написать NSDictionary обратно в список?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...