2013-05-11 66 views
-2

我想以編程方式編寫/刪除datas.plist如何在空plist文件中輕鬆寫入數據

我有一個視圖,其中包含幾個按鈕,它們的區別在於它們的標籤

我希望在每次按下按鈕時:

  • 寫在dictionnary新項目,datas.plist
  • 每個項目將包含按下按鈕和其他的標籤ID數據

而如何在另一個視圖中,以同樣的方式刪除該項目。

我用這個代碼datas.plist閱讀:

NSMutableDictionary *myDictionary; 

NSString *plistfile = [[NSBundle mainBundle] pathForResource:@"Data" offType:@"plist"]; 
[myDictionary writeToFile:@"Data" atomically:YES]; 
NSDictionnary *dict = [NSDictionnary dictionnaryWithContentOfFile:plistFile]; 

NSLog(@"%@", [dict objectForKey:@"Events"]); 
+2

請注意,如果您複製/粘貼*實際代碼*([[NSDictionnary dictionnaryWithContentOfFile:...]'),那麼好的答案的機會會更好?) – 2013-05-11 18:39:59

+0

那麼,什麼問題? – DrummerB 2013-05-11 18:40:55

+1

[861其他問題]可能的重複(http://stackoverflow.com/search?q=write+to+plist+is%3Aquestion) – 2013-05-11 18:48:54

回答

0

您發佈的代碼試圖在應用程序包內寫。這種技術非常令人沮喪:據我所知,這樣做可能會打破捆綁簽名。

假設您有一些有效的理由來做到這一點,您的代碼中還有其他錯誤。我會盡力解決它們,但請記住,您可能需要再次考慮您的算法。

[myDictionary writeToFile:plistFile atomically:YES]; 

我假設這是一個分心的錯誤:你在試圖寫myDictionary到預先定義的路徑(最有可能不是真的存在)。

代碼的下一部分特別令人困惑。我會嘗試回答主要問題。

您可以通過使用添加到NSDictionary中的條目:

- (void)setValue:(id)value forKey:(NSString *)key 

並通過將其刪除:

- (void)removeObjectForKey:(id)aKey 

因此,例如,你可以使用下面的代碼:

NSMutableDictionary *myDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:<filePath>]; 
[myDictionary setValue:@"SomeValues" forKey:@"DesiredKey"]; 
[myDictionary removeObjectForKey:@"DesiredKey"]; 

上面的代碼加載一個plist,然後將它添加到「SomeValues」作爲key @「DesiredKey」的對象。然後,最後一條指令刪除剛剛添加的對象(本例中爲「SomeValues」)。

+0

好吧,忘了[myDictionary writeToFile:plistFile atomically:YES];我明白我的錯誤,所以現在我想添加/刪除一個條目到datas.plist文件 我怎樣才能使用你的2種方法來做到這一點? 對不起,我會嘗試擁有一個正確的英語。 – Crossmax 2013-05-11 19:37:48