我遵循了Objective-C教程,在完成此任务时,我必须制作一个通讯录样式的应用程序,该应用程序可在按下按钮后存储联系人详细信息,然后在下一次加载时将其恢复。
有问题弄清楚为什么未显示文本的原因,因此,下次我在模拟器中加载应用程序时,显然不会加载。
[super viewDidLoad];
NSFileManager *filemgr;
NSString *documentsDirectory;
NSArray *directoryPaths;
filemgr =[NSFileManager defaultManager];
directoryPaths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
documentsDirectory =[directoryPaths objectAtIndex:0];
filePath =[[NSString alloc]initWithString:[documentsDirectory stringByAppendingPathComponent:@"userInfo.dat"]];
if ([filemgr fileExistsAtPath:filePath])
{
NSMutableArray *userData;
userData =[NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
txtFirstName.text =[userData objectAtIndex:0];
txtLastName.text =[userData objectAtIndex:1];
txtEmail.text =[userData objectAtIndex:2];
txtPhone.text =[userData objectAtIndex:3];
NSLog(@"File Has Been loaded");
}else
{
NSLog(@"Error.");
}
}
- (IBAction)btnSaveDetails:(id)sender {
NSMutableArray *contactDetails;
contactDetails =[[NSMutableArray alloc]init];
[contactDetails addObject:txtFirstName.text];
[contactDetails addObject:txtLastName.text];
[contactDetails addObject:txtEmail.text];
[contactDetails addObject:txtPhone.text];
[NSKeyedArchiver archiveRootObject:contactDetails toFile:filePath];
NSLog(@"File Saved");
}
提前感谢
-(id)viewDidLoad
{
NSMutableArray * userData = [[NSMutableArray alloc] init];
NSData * downloadedData = [[NSData alloc] initWithContentsOfFile: [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/userInfo.plist"]];
if (downloadedData.length)
[userData setArray:[NSKeyedUnarchiver unarchiveObjectWithData:downloadedData]];
NSLog(@"userData :%@", userData);
downloadedData = nil;
}
-(IBAction)btnSaveDetails:(id)sender
{
NSMutableArray * contactDetails =[[NSMutableArray alloc]init];
[contactDetails addObject:txtFirstName.text];
[contactDetails addObject:txtLastName.text];
[contactDetails addObject:txtEmail.text];
[contactDetails addObject:txtPhone.text];
NSData * contactData = [NSKeyedArchiver archivedDataWithRootObject:contactDetails];
[contactData writeToFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/userInfo.plist"] atomically:YES];
contactData = nil;
}