Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将数据写入plist以用于tablelview_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 将数据写入plist以用于tablelview

Iphone 将数据写入plist以用于tablelview,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我得到了以下结论: 此plist存储一个数组,该数组将加载到UITableview中,如右图所示 我使用以下代码检索此内容: NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"]; vakken = [[NSDictionary alloc] initWithContentsOfFile:path]; naamvakken = [vakken objectForKey:@"Vakke

我得到了以下结论:

此plist存储一个数组,该数组将加载到UITableview中,如右图所示

我使用以下代码检索此内容:

NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"];
vakken = [[NSDictionary alloc] initWithContentsOfFile:path];

naamvakken = [vakken objectForKey:@"Vakken"];

self.array = [naamvakken mutableCopy];
现在,我将此UIAlertview与此Textfield内置功能一起使用,以允许用户创建新行:

使用此代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"];

NSString *list = [[alertView textFieldAtIndex:0]text];

naamvakken = [vakken objectForKey:@"Vakken"];

[array addObject:list];

[array writeToFile:path atomically:YES];

[self.tableView reloadData];
但出于这样或那样的原因,上面的代码将文本存储在TableView中,而不是plist中。我的代码有问题吗<代码>[数组写入文件:原子路径:是]应该这样做吗

另一个问题是,如果用户在tableviewcell上向右滑动,如何从plist中删除字符串

我的

在viewdidload中:

listPath = [[self docsDir]stringByAppendingPathComponent:@"array.plist"];

谢谢

每天在StackOverflow上都会出现一个关于这个问题的问题。问题在于:

NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"];

您无法写入应用程序包(出于非常明显的安全原因)。如果要更新plist,请将其写入可写路径,如Documents目录。

@user1883396 Docs请。你需要使用NSSearchPaths for Directory Indomains功能。我问这个问题是因为我在internet或apple文档中找不到它。。我只需要一个解决这个问题的方法,现在处理它4个小时…@user1883396我明白了。正如我提到的,请尝试使用“nsSearchPaths FordirectoriesIndomains()”函数。在何处以及如何使用它?我发现:-(NSString*)docsDir{return[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0];}@user1883396在您打算编写时,用此方法的返回值替换Property列表的路径。
listPath = [[self docsDir]stringByAppendingPathComponent:@"array.plist"];
NSString *path = [[NSBundle mainBundle] pathForResource:@"array" ofType:@"plist"];