首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Objective-C NSMutableDictionary 完整操作指南

     編輯:關於C++

創建與初始化

// 空可變字典
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
// 預留容量(優化性能)
NSMutableDictionary *dict2 = [NSMutableDictionary dictionaryWithCapacity:10];
// 字面量語法(不可變,需 copy)
NSDictionary *immutable = @{@"key": @"value"};
NSMutableDictionary *dict3 = [immutable mutableCopy];

增刪改查

// 增/改:key 存在則覆蓋,不存在則新增
[dict setObject:@"value1" forKey:@"key1"];
// 刪除指定鍵
[dict removeObjectForKey:@"key1"];
// 清空
[dict removeAllObjects];
// 查詢
id value = [dict objectForKey:@"key1"]; // 或 dict[@"key1"]
// 判斷存在性
BOOL exists = [dict objectForKey:@"key1"] != nil;
// 獲取所有鍵/值
NSArray *keys = [dict allKeys];
NSArray *values = [dict allValues];

遍歷方式

// 快速枚舉(推薦,效率高)
for (NSString *key in dict) {
    NSLog(@"%@ -> %@", key, dict[key]);
}
// 傳統索引遍歷
NSArray *keys = [dict allKeys];
for (NSUInteger i = 0; i < keys.count; ++i) {
    NSString *key = keys[i];
    NSLog(@"%@ -> %@", key, dict[key]);
}

內存管理提示

  • dictionary 類方法返回自動釋放對象(ARC 下無需手動釋放)。
  • alloc/init 需配對 release(MRC 時代)。
  • 鍵會被 複製,值會被 強引用 保持。
  • 鍵必須遵循 NSCopying 協議(通常用 NSString)。

完整示例

int main() {
    @autoreleasepool {
        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        [dic setObject:@"Apple" forKey:@"fruit"];
        [dic setObject:@"Carrot" forKey:@"vegetable"];
        NSLog(@"初始: %@", dic);
        [dic removeObjectForKey:@"fruit"];
        NSLog(@"刪除後: %@", dic);
        for (NSString *key in dic) {
            NSLog(@"%@: %@", key, dic[key]);
        }
    }
    return 0;
}

總結

NSMutableDictionary 是鍵值存儲的核心工具,掌握 字面量創建、KVC 存取、快速枚舉、內存語義 四大要點,即可高效應對日常開發場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved