无法将数据写入plist文件 - 目标c

时间:2015-05-08 15:41:44

标签: ios objective-c plist

我试图读取和写入我的plist文件中的数据,而阅读部分进展顺利,写作部分什么都不做。

我可能会误认为是写作部分 - 我无法看到我的文件夹下的任何更改 - 我的更改后它仍然是空的,当我关闭应用程序并再次打开它时 - 我仍然看到空电子邮件地址行。

编写代码(以及将plist放在文档文件夹中以备将来写作)

NSFileManager *fileManger=[NSFileManager defaultManager];
NSError *error;
NSArray *pathsArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *doumentDirectoryPath=[pathsArray objectAtIndex:0];
NSString *destinationPath= [doumentDirectoryPath stringByAppendingPathComponent:@"userData.plist"];

NSLog(@"plist path %@",destinationPath);
if ([fileManger fileExistsAtPath:destinationPath]){
    NSLog(@"database localtion %@",destinationPath);
    //return;
}

NSString *sourcePath = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"userData.plist"];
[fileManger copyItemAtPath:sourcePath toPath:destinationPath error:&error];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: sourcePath];
NSString *emailAddress = (NSString *)[dict objectForKey: @"emailAddress"];
if([emailAddress isEqualToString:@""])
{
    // Do stuff
}

写作

NSArray *pathsArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString *doumentDirectoryPath =[pathsArray objectAtIndex:0];

NSString *destinationPath = [doumentDirectoryPath stringByAppendingPathComponent:@"userData.plist"];

NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile: destinationPath];

[plistDict setValue:@"myEmail@gmail.com" forKey:@"emailAddress"];
[plistDict writeToFile:destinationPath atomically: YES];

但正如我所说,文件本身没有任何改变,即使我保存也没有,关闭应用程序并再次打开它(我的阅读部分字符串总是空的)

任何帮助都将受到欢迎。

0 个答案:

没有答案