簡體   English   中英

替換NSDictionary中的鍵值

[英]Replacing key-values in NSDictionary

我有一個像這樣的NSDictionary:

{
"name": "Hayagreeva", //String
"age": 3,  //Number
"subjects": {  //Array
    "rhymes": {   //Dictionary 1
        "test1": 10,
        "test2": 20,
        "test3": 30
    },
    "games": {  //Dictionary 2
        "test1": 40,
        "test2": 50,
        "test3": 60
    },
    "crayoning": { //Dictionary 3
        "test1": 70,
        "test2": 80,
        "test3": 90
    }
},
"date": "2008-02-16T10:06:00Z"  //Date
}

現在我需要將關鍵主題>游戲> test1的值從40替換為值60.我知道了獲取另一個字典對象並創建類似字典的長度過程,但該過程非常耗時且可能是錯誤的策略。 我在這里也搜索了很多問題但是他們都有辦法刪除第一級字典的密鑰(比如刪除上面代碼中的關鍵“主題”)。 所以我想知道是否有一種簡單有效的方法來更新內部關鍵字的值,因為我需要在當前項目的許多情況下執行此過程。 提前致謝。

編輯:我也嘗試過類似的東西

[dict removeValueForKey:@"subjects.games.test1"];

但這不起作用。 我希望這一行可以幫助您了解我所需的功能。

如果這個結構是一成不變的,並且不會改變那么它就像這樣簡單:

NSDictionary *topLevelDict = ...;
topLevelDict[@"subjects"][@"games"] = @{
    @"test1" : @(60),
    @"test2" : @(50),
    @"test3" : @(60)
};

字典字典操作起來很痛苦,創建自定義模型對象總是更好,它允許更容易操作,驗證以及特定於域的功能(如序列化等)的額外好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM