#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-如何创建和使用NSDictionary和NSMutableDictionary-Latest-2017-Hindi- 视频:-Yogesh Patel在Objective-C中使用NSDictionary和NSMutableDictionary的介绍。 在本频道中,我将在多部视频中讲授大多数...
Objective-C是一种主要应用于苹果操作系统上的编程语言,它是C语言的一种扩展,支持面向对象编程特性。Objective-C最初由Pike International公司的Brad Cox和Tom Love于1983年设计,并在1986年由NEXTSTEP系统引入。...
这个"Learn Objective-C 中文版 v2"的学习资源可能是针对那些希望深入理解Objective-C语言特性和编程实践的开发者设计的。下面我们将详细探讨Objective-C的关键知识点。 1. **面向对象编程基础**: - **类与对象**...
Objective-C提供了多种集合类,如数组(NSArray、NSMutableArray)、字典(NSDictionary、NSMutableDictionary)和集合(NSSet、NSMutableSet)。这些集合类允许开发者以不同的方式存储和管理数据集合。 在构建自己...
在Objective-C中,词典对象通常通过NSDictionary类及其可变子类NSMutableDictionary来实现。NSDictionary用于存储键值对形式的数据集合,其中每个键对应一个对象(值)。本知识点总结将详细介绍Objective-C中...
- **目标读者**:本书适合初学者以及有一定基础的开发者学习Objective-C语言。 #### 三、安装与配置 - **安装步骤**: - 安装Xcode:Objective-C的主要开发环境为Xcode,它是苹果官方提供的集成开发环境(IDE),...
3. **块(Blocks)**:Objective-C的块是一种内联函数,可以捕获并存储其定义时的作用域内的变量。它们在处理异步操作和回调时非常实用。 4. **懒加载(Lazy Loading)**:这是一种优化技术,延迟初始化直到真正...
Objective-C是一种用于苹果iOS和Mac OS X应用程序开发的面向对象...通过这一系列的系统学习,学员们能够熟练使用Objective-C完成从基础的程序构建到高级功能的开发,同时也能更好地理解与运用面向对象编程的相关概念。
Objective-C 2.0 是苹果公司为iOS和Mac OS X操作系统开发的一种面向对象的编程语言,它是C语言的超集,融入了Smalltalk的特性。本资料主要关注的是Objective-C 2.0的课后习题解答,这些习题旨在帮助学习者深入理解...
3. **内存管理**:探讨Objective-C的自动引用计数(ARC)系统,理解内存分配、持有和释放的原则。 4. **块(Blocks)**:学习Objective-C中的闭包,理解它们的用途和实现方式。 5. **集合类型**:深入浅出地讲解...
Objective-C是一种面向对象的编程语言,它是C语言的超集,添加了Smalltalk风格的消息传递机制,主要用于开发苹果平台上的应用程序,包括iOS和macOS。Objective-C是在20世纪80年代由Stepanov和Moss在施乐帕洛阿尔托...
Objective-C不仅保留了C语言的所有功能,还引入了许多新的概念和技术,使得开发者能够更加高效地构建复杂的应用程序。 #### 二、面向对象基础 Objective-C作为一种典型的面向对象语言,支持类(Class)、对象(Object...
在iOS开发中,Objective-C是主要的编程语言之一,特别是在构建移动端应用时。Objective-C的实体类对象序列化和反序列化是数据处理的关键环节,它涉及到如何将内存中的对象转换为可存储或传输的数据格式,如JSON...
Objective-C教程旨在为初学者提供一个全面的学习路径,让他们掌握这门语言的基础,并能够理解面向对象编程的核心概念。 在Objective-C基础教程中,首先会介绍如何构建一个OC客户端程序。创建程序的第一步是在Xcode...
3. `NSDictionary` 和 `NSMutableDictionary`:不可变和可变字典,用于存储键值对。 4. `NSString`:不可变字符串类,提供字符串操作。 5. `NSNumber`:包装基本数据类型的对象,用于在对象中使用整数、浮点数等。 6...
Objective-C是一种强大的面向对象的编程语言,主要用于Apple...通过阅读《Objective-C for Absolute Beginners》这本书,你可以更系统地学习Objective-C,掌握iOS或macOS开发的基本技能,逐步成长为一名熟练的开发者。
Objective-C的起源可追溯到C语言,它在C的基础上添加了Smalltalk风格的消息传递机制,使得程序设计更加灵活和动态。在Objective-C中,类是主要的构建块,它们定义了对象的行为和属性。类通过继承、封装和多态等面向...