2010-08-09 2 views
0

Я пытаюсь создать приложение, имеющее список пользователей, и каждому пользователю будет назначен массив данных, которые можно редактировать. Я новичок в постоянных данных, поэтому я думал, что список свойств будет самым простым в использовании. В первом представлении приложения будет список пользователей, которые уже отредактировали хотя бы свое имя, а затем «Новый пользователь» для каждого списка свойств, который еще ничего не редактировал. (Я уверен, что есть код, чтобы программа создавала новые списки свойств каждый раз, когда человек нажимал «Новый пользователь», но это, вероятно, слишком сложно для меня, поэтому на данный момент я просто определил 3 списка свойств, которые будут соответствовать с моими 3 пользователями.)Управление списком свойств

Итак, для части «viewDidLoad» на главном экране моих приложений мне нужно заполнить UIPicker именами 3 пользователей (или «Новый пользователь», если редактирование не было) , Я сделал это:

NSString *filePathForProfile1 = [self dataForProfile1]; 
NSString *filePathForProfile2 = [self dataForProfile2]; 
NSString *filePathForProfile3 = [self dataForProfile3]; 


if ([[NSFileManager defaultManager] fileExistsAtPath:filePathForProfile1]) { 

    NSArray *arrayProfile1 = [[NSArray alloc]initWithContentsOfFile:filePathForProfile1]; 
    NSArray *arrayProfile2 = [[NSArray alloc]initWithContentsOfFile:filePathForProfile2]; 
    NSArray *arrayProfile3 = [[NSArray alloc]initWithContentsOfFile:filePathForProfile3]; 

    NSArray *array = [[NSArray alloc]initWithObjects:[arrayProfile1 objectAtIndex:0],[arrayProfile2 objectAtIndex:0],[arrayProfile3 objectAtIndex:0],nil]; 



    self.profileData = array; 
    arrayProfile1.release; 
    arrayProfile2.release; 
    arrayProfile3.release; 
} 

Теперь, потому что я запустить программу, уже есть файл, сохраненный для Профиль1 так же выбор отображения имени для этого один - но для жизни меня я не могу достаточно выяснить, как заставить его отображать «Новый пользователь» для другого 2. Я попытался настроить инструкцию if-then с аргументом fileExistsAtPath, чтобы создать init с помощью «New User», но затем я не смог передать массив из аргумента. Помоги пожалуйста!!

+0

Я думаю, что чтение PLIST вы предварительно -строенный, а затем изменение этого plist с помощью NSUserDefaults было бы более простым способом, а не сохранением нового plist для каждого пользователя. –

ответ

0

Я бы порекомендовал вам взглянуть на Archives and Serializations Programming Guide. Наиболее подходящее решение (ну и основные данные, а также ...) для вашей проблемы может быть сериализация объектов.

Возможно, у вас есть массив объектов «Person», а класс Person имеет MutableArray из «Data» -Objects. Все, что вам нужно сделать, это сделать класс Person-Class и Data-Classe (s) совместимым с NSCoding. После этого вы можете легко сохраняться ваш массив людей чем-то же просто, как: [NSKeyedArchiver archiveRootObject:yourPersonsArray toFile:yourFilePath];

также есть полезная обучающая найдено NSCoding/NSkeyedArchiver Tutorial

cheeers,
Сэму

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