TextFields の内容を、対応する Key-Value ペアとともに plist に保存したいと考えています。同様に、Password フィールドは Key-Password と Value-(textField に入力) とともに保存する必要があります。
どうやってやるの?
他のクラスでアクセスしたい。私はそれを行うことができますか?はいの場合、どのように?
TextFields の内容を、対応する Key-Value ペアとともに plist に保存したいと考えています。同様に、Password フィールドは Key-Password と Value-(textField に入力) とともに保存する必要があります。
どうやってやるの?
他のクラスでアクセスしたい。私はそれを行うことができますか?はいの場合、どのように?
Stuff の追加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];
}
次の方法で、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"]];
はい、ディクショナリのキーでのプロパティのNSMutableDictionary
値を追加します。お気に入りUITextFeild
text
NSMutableDicitonary * dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:textfield.text forKey:@"username"];
[dictionary setObject:textfield.text forKey:@"password"];
辞書を plist に保存し、必要な場所で使用します。
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];
ベスト プラクティスは、これらの情報を plist ではなく NSUserDefaults に保存することです。NSUserDefautls は、プロジェクトのどこからでもアクセスできます。
保存:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:[yourTextfield text] forKey:@"password"];
取得中:
NSString *myPassword = [[NSUserDefaults standardUserDefaults] objectForKey:@"password"];