2013-02-06 2 views
0

Я хочу сохранить содержимое TextFields в plist с соответствующей парой Key-Values. Поле «Пароль» должно быть сохранено с помощью Key-Password и Value- (введено в текстовом поле).Как сохранить содержимое TextField для plist

Как я могу это сделать?

и хотите получить к нему доступ в каком-либо другом классе. Могу ли я это сделать? Если да, то как?

ответ

1

Добавление материала в plist легко. Полный рабочий код следующим образом, который добавляет лица контактные данные в PLIST -

// get paths from root direcory 
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
// get documents path 
NSString *documentsPath = [paths objectAtIndex:0]; 
// get the path to our Data/plist file 
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"]; 

// set the variables to the values in the text fields 
self.personName = nameEntered.text; 
self.phoneNumbers = [[NSMutableArray alloc] initWithCapacity:3]; 
[phoneNumbers addObject:homePhone.text]; 
[phoneNumbers addObject:workPhone.text]; 
[phoneNumbers addObject:cellPhone.text]; 

// create dictionary with values in UITextFields 
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: personName, phoneNumbers, nil] forKeys:[NSArray arrayWithObjects: @"Name", @"Phones", nil]]; 

NSString *error = nil; 
// create NSData from dictionary 
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; 

// check is plistData exists 
if(plistData) 
{ 
    // write plistData to our Data.plist file 
    [plistData writeToFile:plistPath atomically:YES]; 
} 
else 
{ 
    NSLog(@"Error in saveData: %@", error); 
    [error release]; 
} 

[source]

+0

привет, спасибо .. но им не получить место (место), где хранится моя PLIST .. и библиотека нет в моем местном счет .. что делать, чтобы искать? Я искал в Finder также .. –

+0

Я думаю, что они где-то в подпапках здесь '~/Библиотека/Поддержка приложений/Симулятор iPhone/Пользователь/Приложения /' подробнее здесь - http://mobiledevelopertips.com/xcode/where-does -xcode-simulator-write-files.html –

+0

im не получает папку с библиотекой .. ее отображение пути, но im не удается проследить данный путь. –

0

Вы можете сохранить содержимое TextField в Plist следующим образом:

 NSMutableDictionary *_plistDict = [NSMutableDictionary dictionaryWithContentsOfFile:pListPath]; 
     [_plistDict setValue:textField.text forKey:@"Password"]; 
     [_plistDict writeToFile:pListPath atomically:YES]; 

Если вы хотите, чтобы получить это значение из Plist, Вы можете использовать следующий код:

NSMutableDictionary *_plistDict = [NSMutableDictionary dictionaryWithContentsOfFile:pListPath]; 
    NSString *status = [NSString stringWithFormat:@"%@",[_plistDict objectForKey:@"Password"]]; 
0

Да , Возьмите NSMutableDictionary Добавить значения UITextFeild Недвижимость text в в словарях словаря. Как

  NSMutableDicitonary * dictionary = [[NSMutableDictionary alloc] init]; 
     [dictionary setObject:textfield.text forKey:@"username"]; 
     [dictionary setObject:textfield.text forKey:@"password"]; 

Сохранить словарь в plist и использовать его там, где он требуется.

0
NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 

NSString *aFilePath = [NSString stringWithFormat:@"%@/plistName.plist", aDocumentsDirectory]; 

NSMutableArray *plistArray = [[NSMutableArray alloc] initWithContentsOfFile:aFilePath]; 


NSMutableDictionary *newComment = [NSMutableDictionary dictionary]; 
[newComment setValue:userName.text forKey:@"username"]; 
[newComment setValue:password.text forKey:@"password"]; 


[plistArray addObject:newComment]; 
[plistArray writeToFile:filePath atomically:YES]; 
0

Лучшая практика будет экономить эти данные в NSUserDefaults вместо одного списка свойств. Доступ к NSUserDefautls можно получить из любого места вашего проекта.

Saving:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
[userDefaults setObject:[yourTextfield text] forKey:@"password"]; 

Получение:

NSString *myPassword = [[NSUserDefaults standardUserDefaults] objectForKey:@"password"]; 
+0

Это может быть лучшая практика, но как мы можем получить доступ к NSUserDefaults в других классах? Я попытался импортировать класс, но он показал некоторую ошибку. –

+0

'[NSUserDefaults standardUserDefaults]' singleton, поэтому его можно получить из любого места в вашем приложении. Вам не нужно ничего импортировать. Не нужно передавать объект между viewcontrollers. Сохранить с одного места и получить доступ из другого места. – sleepwalkerfx

+0

im получить ошибку, чтобы переменные не были объявлены. –

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