gpt4 book ai didi

iphone - iOS中将键值对添加到plist文件时出现问题

转载 作者:行者123 更新时间:2023-11-29 04:26:52 24 4
gpt4 key购买 nike

我在 iPhone 应用程序中有一个 View Controller ,它将键值对添加到 plist 文件中。然后,它使用 TableView 在 View Controller 中显示整个 plist。我遇到的问题是,它只会显示 iPhone 模拟器中的值,并且如果我完全重新启动应用程序,它只会显示新的键值对。

注意:plist 文件应该添加到应用程序的资源目录中更新:下面的代码是我的问题的解决方案,此外,为了查看 plist 中的新条目,我实现了一个刷新按钮,该按钮基本上运行 viewDidLoad 中的部分。

添加键值对的 View Controller 的代码如下:

- (IBAction)addAction:(UIBarButtonItem *)sender
{
NSString *myFile=[[NSBundle mainBundle] pathForResource:@"File" ofType:@"plist"];

dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:myFile];

NSArray *docDir=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *filePath=[docDir objectAtIndex:0];
NSString *plistPath=[filePath stringByAppendingPathComponent:@"File.plist"];

//Check plist's existance using FileManager
NSError *err=nil;
NSFileManager *fManager=[NSFileManager defaultManager];

if(![fManager fileExistsAtPath:plistPath])
{
//file doesn't exist, copy file from bundle to documents directory

NSString *bundlePath=[[NSBundle mainBundle] pathForResource:@"File" ofType:@"plist"];
[fManager copyItemAtPath:bundlePath toPath:plistPath error:&err];
}

//Get the dictionary from the plist's path
dictionary =[[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
//Manipulate the dictionary
[dictionary setObject:textContent forKey:textName];
//Again save in doc directory.
[dictionary writeToFile:plistPath atomically:YES];
}

这是在另一个 View Controller 的 TableView 中显示 plist 的代码:

- (void)viewDidLoad
{
[super viewDidLoad];
// Initialize table data

NSArray *docDir=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *filePath=[docDir objectAtIndex:0];
NSString *plistPath=[filePath stringByAppendingPathComponent:@"File.plist"];


dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:**plistPath**];
verses = [dictionary allKeys];

[self.mainTableView reloadData];

}

感谢您的帮助!

最佳答案

在设备上,主包是只读的,您要写入文档目录路径。您可以通过

获取

NSArray paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

您的更改仅在启动时出现的原因是文件名不匹配

关于iphone - iOS中将键值对添加到plist文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com