`
又呆又圆的萌萌
  • 浏览: 2571 次
  • 性别: Icon_minigender_2
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

NSDictionary方法

阅读更多
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
//NSDictionary 不可变字典,使用键值对来存储数据,与NSArray不同,NSDictionary与NSset都是无序集合
//key 和 value 成对出现
        
        //@"" @1 @(1) @[] @{}
        //方法一:常用,键值对较清晰
        NSDictionary *dic1 = @{@"key1" : @"value1",
                               @"key2" : @"value2",
                               @"key3" : @"value3",
                               @"key4" : @"value4",
                               @"key5" : @"value5",
                               @"key6" : @"value6",
                               @"key7" : @"value7"};
        //方法二、三不清晰,不利于读代码
        NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
        NSDictionary *dic3 = [[NSDictionary alloc] initWithObjects:@[@"value1", @"value2"] forKeys:@[@"key1", @"key2"]];
#pragma mark - NSDictionary读取
        NSString *value1 = dic1[@"key1"];//取key1对应的value值
        NSString *value2 = [dic1 objectForKey:@"key9"];//字典取值找不到的时候输出 (null)
        //valueForKey是键值编码(KVC)的方法,不属于字典的方法,不要使用
        NSLog(@"%@", dic1);
        NSLog(@"%@ %@", value1, value2);
        
        NSArray *allKeys = [dic1 allKeys];
        NSArray *allValues = [dic1 allValues];
        
        //遍历整个字典(较少使用)
        for (NSUInteger i = 0; i < dic1.count; i++) {
            NSString *key = allKeys[i];
            NSLog(@"%@ : %@", key, dic1[key]);
        }
        //从头到尾遍历所有key值(forin)
        for (NSString *key in dic1) {
            NSLog(@"%@ : %@", key, dic1[key]);
            //break;//可用break;
        }
        
        //PS:NSArray遍历
        NSArray *array = @[@"1", @"4", @86];
        for (id value in array) {//遍历array中的所有类型值
            NSLog(@"%@", value);
        }
        
#pragma mark - NSMutableDictionary
        //初始化
        NSMutableDictionary *mutableDic1 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", nil];
        NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionaryWithDictionary:mutableDic1];
        
        //新增
        [mutableDic1 setObject:@"value2" forKey:@"key2"];
        
        //删除
//        [mutableDic1 removeObjectForKey:@"key2"];
//        [mutableDic1 removeAllObjects];
        
        //修改
        [mutableDic1 setObject:@"333" forKey:@"key1"];//字典中的key值不能重复,所有333会覆盖key1,相当于修改
        
        //查找
        NSString *string = mutableDic1[@"key2"];//没有下标,只能通过key来操作
        
#pragma mark - NSSet
        //完全无序集合
        //初始化类似数组,分为可变和不可变,元素不能重复,常用来清除其他集合中的重复元素
        
    }
    return 0;
}

 

分享到:
评论

相关推荐

    NSString NSArray NSDictionary 方法名释义

    NSString NSArray NSDictionary 方法名释义

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    这个方法会将指定的根对象(这里就是我们的NSDictionary)编码并保存到一个文件中。在内存中操作时,我们可以用`dataWithJSONObject:options:error:`方法,该方法来自`NSJSONSerialization`类,将字典转换成JSON格式...

    NSDictionary,JSON和XML互相转换

    Objective-C提供了内置的方法来解析JSON字符串为`NSDictionary`,以及将`NSDictionary`对象转换为JSON字符串。在Swift中,可以使用`JSONSerialization`类来完成这些操作。 1. JSON到NSDictionary转换: 在...

    NSDictionary帮助文档

    `NSDictionary`提供多种构造方法,最常见的包括使用字面量语法或初始化器。例如,可以使用`@{}`语法创建一个包含键值对的字典,或者通过`NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:.....

    自定义类在NSdictionary当key的示例

    为了使自定义类可以正确地用作`NSDictionary`的键,还需要重写`isEqual:`和`hash`方法。`isEqual:`用于比较两个对象是否相等,`hash`则返回一个整数值,使得相等的对象具有相同的哈希值。这确保了当查找键时,能够...

    (objective-c 自定义 NSDictionary 键类的注意事项)工程

    3. **实现`isEqual:`和`hash`方法**:为了正确地比较和定位键,`NSDictionary`依赖于`isEqual:`和`hash`方法。`isEqual:`用于确定两个键是否表示相同的实体,而`hash`方法则返回一个整数值,使得相等的对象有相同的...

    NSDictionary.zip

    NSDictionary还提供了检查键是否存在、获取所有键和值、以及遍历键值对的方法。例如,你可以使用`allKeys`来获取所有键,`allValues`来获取所有值,`count`来获取键值对的数量,`enumerateKeysAndObjectsUsingBlock:...

    swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合

    `swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合`这一标题揭示了一个高效的解决方案,它结合了Objective-C和Swift语言的优势,使得从JSON数据到自定义模型对象的转换变得简单...

    oc.zip_NSArray_NSDictionary_去空

    在iOS开发中,`NSArray` 和 `NSDictionary` 是两种非常重要的数据结构,分别用于存储有序的元素集合(数组)和键值对集合(字典)。然而,在处理实际数据时,我们常常会遇到空值(nil 或 NSNull)的情况,这可能导致...

    ios demo,NSDictionary toJSONString,字典转换到JSONString

    转换`NSDictionary`到`JSONString`的方法在`NSJSONSerialization`类中提供。以下是在Swift和Objective-C中进行转换的代码示例: **Swift:** ```swift if let dictionary = [key: value] as? [String: Any], let ...

    NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍

    在Objective-C中,集合类是数据结构的...类似的,对于NSSet、NSMutableSet、NSDictionary和NSMutableDictionary,也有相应的操作方法来实现类似的功能。理解并熟练使用这些集合类是Objective-C编程中不可或缺的一部分。

    NSArray,NSSet,NSDictionary超详细用法说明

    在iOS和Objective-C(OC)开发中,NSArray、NSSet和NSDictionary是Foundation框架中的核心数据结构,它们用于存储和管理对象。这些容器类提供了多种方法来操作和访问存储的数据,是编写应用程序时不可或缺的部分。 ...

    ios demo,JSONString to NSDictionary,字符串JSON数据转换到字典数据

    同时,`JSONObjectWithData:`方法只会返回`NSArray`或`NSDictionary`,不会返回基本数据类型,如`NSString`、`NSNumber`等。你需要自己处理这些类型。 3. **错误处理**:在解析过程中可能出现错误,如网络问题、...

    Objective-C中NSNumber与NSDictionary的用法简介

    在Objective-C中,NSNumber和NSDictionary是两个非常重要的基础类,它们在编程中扮演着不可或缺的角色。即使随着Swift的兴起,Objective-C仍然是许多现有项目和开发者的主要工具,因此了解这两个类的用法至关重要。 ...

    一些NSArray,NSDictionary,NSSet相关的算法知识1

    在iOS编程中,NSArray、NSDictionary和NSSet是常用的集合类,它们提供了存储和操作对象的方式。这些集合类在实际开发中扮演着重要角色,理解和优化它们的使用能够显著提高代码的性能和准确性。以下是对这些集合类...

    NSObject-Serialize:从 NSDictionary 到 NSObject 或从 NSObject 到 NSDictionary 的简单方法

    NSObject-序列化用法要运行示例项目, pod install克隆 repo,然后从 Example 目录运行pod install 。要求安装NSObject-Serialize 可通过。 要安装它,只需将以下行添加到您的 Podfile 中: pod "NSObject-Serialize...

    MBSwizzler:Swift中方法混乱的简单类

    Swizzle NSDictionary方法: NSDictionary.swizzleMethodSelector("description", withSelector: "swizzled_Description", forClass: NSDictionary.classForCoder()) Swizzle自定义类方法: MyClass....

    IOS 开发之NSDictionary转换成JSON字符串

    这段代码使用`NSJSONSerialization`类的`dataWithJSONObject:options:error:`方法尝试将NSDictionary转换为JSON数据,然后将其转化为NSString。其中`NSJSONWritingPrettyPrinted`选项用于生成格式化的JSON字符串,...

Global site tag (gtag.js) - Google Analytics