`
gkuiyj
  • 浏览: 90776 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Objective-C个人学习系列(3) NSDictionary NSMutableDictionary

 
阅读更多

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[])

{

 

    @autoreleasepool {

        //--------------------------NSDictionary-----------------------

        //通过键-值对创建字典,先创建对象实例,再初始化对象

        //- (instancetype)initWithObjectsAndKeys:(id)firstObject, , ...

        NSDictionary * dic = [[NSDictionaryalloc] initWithObjectsAndKeys:

                              @"zhangsan",@"001",@"wangwu",@"002", nil];

        //根据key返回对象值

        NSString * s = [dic objectForKey:@"001"];

        NSLog(@"%@",s);

        //遍历字典,遍历出key,通过key得到object

        for (NSString* key in dic) {

            NSString* value = [dic objectForKey:key];

            NSLog(@"%@",value);

        }

        

        NSArray *arrKey = [[NSArray alloc]initWithObjects:@"101",@"102",@"103",@"104", nil];

        NSArray *arrValue = [[NSArray alloc]initWithObjects:@"张三",@"李四",@"王五",@"赵六", nil];

        

        //通过现有的对象数组创建字典对象

        //- (instancetype)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys

        NSDictionary* dic2 = [[NSDictionary alloc]initWithObjects:arrValue

                                                          forKeys:arrKey];

        for (NSString* key in dic2) {

            NSString* value = [dic2 objectForKey:key];

            NSLog(@"%@",value);

        }

        

        //通过类方法直接创建字典对象

        NSDictionary *dd = [NSDictionary dictionaryWithObjects:arrValue

                                                       forKeys:arrKey];

        for (NSString* key in dd) {

            NSString* value = [dd objectForKey:key];

            NSLog(@"%@",value);

        }

        

        

        

        //字典比较

        //- (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary

        //字典中内容相等返回YES,否则返回NO

        BOOL isEqual = [dd isEqualToDictionary:dic];

        NSLog(@"%hhd",isEqual);             //Output:0

        BOOL isEqual2 = [dd isEqualToDictionary:dic2];

        NSLog(@"%hhd",isEqual2);             //Output:1

        

        

        //--------------------------NSMutableDictionary-----------------------

        //创建可变字典

        NSMutableDictionary* mDic = [[NSMutableDictionaryalloc] init] ;

        

        NSNumber* num01 = [[NSNumber alloc] initWithInt:1001] ;

        NSNumber* num02 = [[NSNumber alloc] initWithInt:1002] ;

        NSNumber* num03 = [[NSNumber alloc] initWithInt:1003] ;

        NSNumber* num04 = [[NSNumber alloc] initWithInt:1004] ;

        NSNumber* num05 = [[NSNumber alloc] initWithInt:1005] ;

        

        NSString* name01 = @"小刚";

        NSString* name02 = @"小明";

        NSString* name03 = @"小强";

        NSString* name04 = @"小红";

        NSString* name05 = @"小霞";

        //添加键值对

        [mDic setObject:name01 forKey:num01];

        [mDic setObject:name02 forKey:num02] ;

        [mDic setObject:name03 forKey:num03] ;

        [mDic setObject:name04 forKey:num04] ;

        [mDic setObject:name05 forKey:num05] ;

        //如果添加的新元素的key与原来的字典中的key一样

        //将原来key所对应的值覆盖掉

        //不会添加新元素空间

        [mDic setObject:name05 forKey:num01] ;

        

        for (NSNumber* num in mDic)

        {

            NSLog(@"name = %@", [mDic objectForKey:num]);

        }

 

        //删除所有元素

        //[mDic removeAllObjects] ;

        //根据key删除一个元素

        [mDic removeObjectForKey:num03] ;

        [mDic removeObjectForKey:num02] ;

        [mDic removeObjectForKey:num02] ;

        

        for (NSNumber* num in mDic)

        {

            NSLog(@"name = %@", [mDic objectForKey:num]);

        }

 

        //创建删除关键字数组,(根据多个key删除多个元素)

        NSArray* arrayDel = [NSArray arrayWithObjects:num04,num05, nil];

        //根据关键字数组删除元素

        [mDic removeObjectsForKeys:arrayDel] ;

        NSLog(@"\n");

        for (NSNumber* num in mDic)

        {

            NSLog(@"name = %@", [mDic objectForKey:num]);

        }

 

    }

}

 

 

更多内容参考官方文档:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html#//apple_ref/doc/uid/20000140-SW11

分享到:
评论

相关推荐

    Objective-C---How-to-Create-And-Use-NSDictionary-And-NSMutableDictionary-Latest-2017-Hindi-:源代码-How to use the source code

    Objective-C-如何创建和使用NSDictionary和NSMutableDictionary-Latest-2017-Hindi- 视频:-Yogesh Patel在Objective-C中使用NSDictionary和NSMutableDictionary的介绍。 在本频道中,我将在多部视频中讲授大多数...

    Object-C语言教程:Objective-C 简介

    Objective-C是一种主要应用于苹果操作系统上的编程语言,它是C语言的一种扩展,支持面向对象编程特性。Objective-C最初由Pike International公司的Brad Cox和Tom Love于1983年设计,并在1986年由NEXTSTEP系统引入。...

    Learn Objective-C 中文版 v2

    这个"Learn Objective-C 中文版 v2"的学习资源可能是针对那些希望深入理解Objective-C语言特性和编程实践的开发者设计的。下面我们将详细探讨Objective-C的关键知识点。 1. **面向对象编程基础**: - **类与对象**...

    Objective-C Fundamentals

    Objective-C提供了多种集合类,如数组(NSArray、NSMutableArray)、字典(NSDictionary、NSMutableDictionary)和集合(NSSet、NSMutableSet)。这些集合类允许开发者以不同的方式存储和管理数据集合。 在构建自己...

    Objective-C词典对象的使用总结

    在Objective-C中,词典对象通常通过NSDictionary类及其可变子类NSMutableDictionary来实现。NSDictionary用于存储键值对形式的数据集合,其中每个键对应一个对象(值)。本知识点总结将详细介绍Objective-C中...

    Objective-C Succinctly.pdf

    - **目标读者**:本书适合初学者以及有一定基础的开发者学习Objective-C语言。 #### 三、安装与配置 - **安装步骤**: - 安装Xcode:Objective-C的主要开发环境为Xcode,它是苹果官方提供的集成开发环境(IDE),...

    Effective Objective-C 2.0 中文版.zip

    3. **块(Blocks)**:Objective-C的块是一种内联函数,可以捕获并存储其定义时的作用域内的变量。它们在处理异步操作和回调时非常实用。 4. **懒加载(Lazy Loading)**:这是一种优化技术,延迟初始化直到真正...

    Objective-C培训资料

    Objective-C是一种用于苹果iOS和Mac OS X应用程序开发的面向对象...通过这一系列的系统学习,学员们能够熟练使用Objective-C完成从基础的程序构建到高级功能的开发,同时也能更好地理解与运用面向对象编程的相关概念。

    objective-c 2.0 课后习题答案

    Objective-C 2.0 是苹果公司为iOS和Mac OS X操作系统开发的一种面向对象的编程语言,它是C语言的超集,融入了Smalltalk的特性。本资料主要关注的是Objective-C 2.0的课后习题解答,这些习题旨在帮助学习者深入理解...

    Objective-C基础教程(第2版)-有目录

    3. **内存管理**:探讨Objective-C的自动引用计数(ARC)系统,理解内存分配、持有和释放的原则。 4. **块(Blocks)**:学习Objective-C中的闭包,理解它们的用途和实现方式。 5. **集合类型**:深入浅出地讲解...

    objective-c

    Objective-C是一种面向对象的编程语言,它是C语言的超集,添加了Smalltalk风格的消息传递机制,主要用于开发苹果平台上的应用程序,包括iOS和macOS。Objective-C是在20世纪80年代由Stepanov和Moss在施乐帕洛阿尔托...

    Objective-C基础知识及简介.docx

    Objective-C不仅保留了C语言的所有功能,还引入了许多新的概念和技术,使得开发者能够更加高效地构建复杂的应用程序。 #### 二、面向对象基础 Objective-C作为一种典型的面向对象语言,支持类(Class)、对象(Object...

    iOS objective-c 实体类对象的序列化为Json及反序列化

    在iOS开发中,Objective-C是主要的编程语言之一,特别是在构建移动端应用时。Objective-C的实体类对象序列化和反序列化是数据处理的关键环节,它涉及到如何将内存中的对象转换为可存储或传输的数据格式,如JSON...

    objective-c教程

    Objective-C教程旨在为初学者提供一个全面的学习路径,让他们掌握这门语言的基础,并能够理解面向对象编程的核心概念。 在Objective-C基础教程中,首先会介绍如何构建一个OC客户端程序。创建程序的第一步是在Xcode...

    Objective-C入门指南

    3. `NSDictionary` 和 `NSMutableDictionary`:不可变和可变字典,用于存储键值对。 4. `NSString`:不可变字符串类,提供字符串操作。 5. `NSNumber`:包装基本数据类型的对象,用于在对象中使用整数、浮点数等。 6...

    Objective-C新手入门

    Objective-C是一种强大的面向对象的编程语言,主要用于Apple...通过阅读《Objective-C for Absolute Beginners》这本书,你可以更系统地学习Objective-C,掌握iOS或macOS开发的基本技能,逐步成长为一名熟练的开发者。

    objective-C教程

    Objective-C的起源可追溯到C语言,它在C的基础上添加了Smalltalk风格的消息传递机制,使得程序设计更加灵活和动态。在Objective-C中,类是主要的构建块,它们定义了对象的行为和属性。类通过继承、封装和多态等面向...

Global site tag (gtag.js) - Google Analytics