2015-07-20 87 views
0
var files = NSMutableArray() 
... 
for (var i = 0; i < files.count; i++) { 
    var f = files[i] as [String: AnyObject] 
    f["selected"] = true 
} 

當我調試代碼時,f的「selected」屬性設置正確。但文件中的相應元素保持不變。爲什麼?謝謝。枚舉字典組成的數組時,我無法修改字典值

+0

嘗試變種F =文件[I]作爲替代的NSMutableDictionary –

回答

0

我不確定在這裏使用NSMutableArray是怎麼回事......但也許它像一個值類型而不是引用類型。嘗試用修改後的版本替換數組中的項目。

files.replaceObjectAtIndex(i, withObject: f) 

在您進行修改後將其放置。

var files = NSMutableArray() 
//... 
for (var i = 0; i < files.count; i++) { 
    var f = files[i] as! [String: AnyObject] 
    f["selected"] = true 
    files.replaceObjectAtIndex(i, withObject: f) 
} 

如果您使用的是swift數組類型,則應該這樣做。

var files = [[String: AnyObject]]() 

//... 
for (var i = 0; i < files.count; i++) { 
    var f = files[i] as [String: AnyObject] 
    f["selected"] = true 
    files[i] = f; 
} 
0

原因文件的相應元素沒有改變的是,你不修改它在所有你只是改變VAR˚F環內的值。

試試這個代碼:

var files = [Dictionary<String,AnyObject>]() 
    // Probably you are trying to make array of dictionary objects 
    for var i = 0; i < 10 ; i++ { 
     files[i]["selected"] = true 
    }