2012-02-15 76 views
1

我試圖在NSMutableDictionary直接操縱數組:操作數組中的NSDictionary

[[myDictionary objectForKey: @"key"] addObject: object]; 

這不起作用!我甚至試過類型鑄造:

[(NSMutableArray*)[myDictionary objectForKey: @"key"] addObject: object]; 

這也沒有工作!

奏效的唯一途徑是:

NSMutableArray *array = [myDictionary objectForKey: @"key"]; 
[array addObject: object]; 
[myDictionary setObject: array forKey: @"key"] 

是否有辦法來操縱字典類似於第一代碼片段的陣列;即不需要創建一個新的數組,操作它然後保存它?

+3

你說的「這行不通」是什麼意思?編譯器錯誤?崩潰?例外?錯誤的結果? – Costique 2012-02-15 16:31:37

+0

你確定它不起作用嗎?因爲你所有的變種都是平等的? – Max 2012-02-15 16:32:27

+1

並且您確定這是您遇到問題的確切代碼?因爲第一次嘗試完美。 – 2012-02-15 16:32:49

回答

0

的問題是,我不分配對象添加使用下面的代碼之前NSMutable字典即陣內:

[myDictionary addObject: [[NSMutableArray alloc]init] forKey: @"key"]; 
1

您是否正在從文件或URL加載NSDictionary?從API文檔:「該字典包含的對象是不可變的,即使字典是可變的。」

+0

沒有字典在運行時加載 – 2012-02-15 16:38:41

+1

這並不能告訴我們你是如何加載它 – 2012-02-15 16:39:45

+0

我有對象然後我就用[myDictionary ADDOBJECT的數組:數組forKey:@「key」]; – 2012-02-15 16:44:06