Xcode - 写入和删除到 Plist

Xcode - Write and Delete to Plist

我有一个包含两个数组的 plist,如下所示:

我目前这样加载 plist:

// Find path of plist
NSString *path = [[NSBundle mainBundle] pathForResource:@"nameofPList" ofType:@"plist"];


// Read the data into arrays
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *tableData = [dict objectForKey:@"array2"];
  1. 如何将新项目写入 plist 中的 "array2" 数组(代码,非手动)
  2. 如何从 "array2" 中删除项目? (代码,非手动)

谢谢。

你可能想要:

NSMutableArray *tableData = [dict[@"array2"] mutableCopy];
                                             ^^^^^^^^^^^

(否则你会得到一个不可变数组)。

添加项目:

[tableData addObject:@"new item"];

删除:

[tableData removeObjectAtIndex:someIndex];

或:

[tableData removeObject:someObject];

以及您可以在 NSMutableArray Class Reference.

中找到的任何其他内容

但是 "write back" 听起来您正试图将 .plist 写回到应用程序包中。虽然这在 iOS 模拟器中有效,但在真实设备上会失败。

您不能在运行时写入应用程序包;改为写入 Documents 文件夹,并灵活选择从何处读取。