2015-10-20 46 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