2015-10-20 53 views
1

我有两个数组看起来像这样一个的plist:的Xcode - 写入,删除到PList

enter image description here

我目前加载像这样的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”中删除项目? (代码,不是手动)

谢谢。

回答

1

你可能想:

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

(否则你会得到一个不变的阵列)。

添加项目进行:

[tableData removeObjectAtIndex:someIndex]; 

或:

[tableData addObject:@"new item"]; 

与删除

[tableData removeObject:someObject]; 

和其他任何你可以在NSMutableArray Class Reference找到。

但是“回写”听起来像您正在尝试将.plist写回应用程序包中。虽然这可以在iOS模拟器中使用,但它会在真实设备上失败。

您无法在运行时写入应用程序包;请改为文档文件夹,并灵活地从哪里阅读。

+0

我想知道这个编辑是否也会反映在plist中。我正在尝试相同的bt通过代码的数组中的任何更改都不会反映在plist中... – luckyShubhra

+0

是的,它会在您执行'[tableData writeToFile:atomically:]'时执行。 – trojanfoe

+0

谢谢你.. :)我应该通过plist名称作为参数..在写入文件..? – luckyShubhra