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

[iphone] NSDictionary / NSMutableDictionary 及 NSArray / NSmutableArray (实例)

 
阅读更多
NSDictionary 和 NSArray一样是不可变的对象。用来实现字典集合,在给定关键字(通常是一个NSString字符串)下存储一个数值(可以是任何类型的对象)。

NSDictionary使用类方法 dictionaryWithObjectAndKeys: 来创建字典;使用方法objectForKey: 来获取字典中的值。
NSDictionary *dict = [NSDictionary dictionaryWithObjectAndKeys:@"just",@"firstname",   
                                                                @"code",@"lastname",  
                                                                @"xcode@apple.com",@"email",  
                                                                nil];
NSString* firstName = [dict objectForKey:@"firstname"]; 


NSMutableDictionary是可变对象,可以进行添加和删除操作。可以是用dictionaryWithCapacity: (这里的容量也只是个参考值,表示对大小的限制)或 dictionary 来创建可变字典。
//NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];  
NSMutableDictionary *dict = [NSMutableDictionary dictionary];  
  
[dict setObject:@"John" forKey:@"Firstname"];  
[dict setObject:@"Doe" forKey:@"Lastname"];  
[dict setObject:@"info@objectgraph.com" forKey:@"Email"];  
  
NSLog(@"%@", dict);  
  
NSArray *keys = [dict allKeys];  
   
// values in foreach loop  
for (NSString *key in keys) {  
    NSLog(@"%@ is %@",key, [dict objectForKey:key]);  
}  
  
[dict removeObjectForKey:@"Email"]; 


addObject : 在数组末尾添加对象 (id)anObject
removeObjectAtIndex : 删除特定索引处的对象


Objective-C数组相关操作。
// insert code here...  
NSLog(@"数组");  
//指定多个字符串创建数组  
NSArray *array;  
array=[NSArray  arrayWithObjects:@"0-asd",@"1-fds",@"2-哈咯",@"3-个人",nil];  
//数组的长度  
NSLog(@"数组长度%d",array.count);  
//通过索引取得对象  
for(int i=0;i<array.count;i++)  
{  
    NSString *secondStr=[array objectAtIndex:i];  
    NSLog(secondStr,nil);  
}  
//高速枚举法取得对象,Objective-C2.0开始支持,  
for(NSString *str in array)  
{  
    NSLog(str,nil);  
}  
//对象的追加于删除  
//创建空数组  
NSMutableArray *MutArray=[NSMutableArray array];  
//追加对象  
[MutArray addObject:@"A"];  
[MutArray addObjectsFromArray:array];  
//插入对象  
NSString *thstr=@"插入值";  
[MutArray insertObject:thstr atIndex:4];  
//替换对象  
[MutArray replaceObjectAtIndex:2 withObject:@"替换"];  
//删除所有对象  
//[Mutarray removeAllObjects];  
//删除最后的对象  
[MutArray removeLastObject];  
//删除索引为Index的对象  
[MutArray removeObjectAtIndex:0];  
//删除所有于object同值的对象  
[MutArray removeObject:@"0-asd"];  
//删除数组中所有与object等价的对象  
[MutArray removeObjectIdenticalTo:thstr];  
//删除数组中所有与数组array包含相同的元素  
[MutArray removeObjectsInArray:array];  
NSLog(@"%@",MutArray);


NSDictionary 常用方法总结
+(id)dictionaryWithObjectsAndKeys:obj1,key1,obj2,key2,......nil顺序添加对象和键值来创建一个字典,注意结尾是nil
-(id)initWithObjectsAndKeys::obj1,key1,obj2,key2,......nil初始化一个新分配的字典,顺序添加对象和值,结尾是nil
-(unsigned int)count返回字典中的记录数
-(NSEnumerator*)keyNSEnumerator返回字典中的所有键到一个 NSEnumerator 对象
-(NSArray*)keysSortedByValueUsingSelector:(SEL)selector将字典中所有键按照selector 指定的方法进行排序,并将结果返回
-(NSEnumerator*)objectEnumerator返回字典中所有的值到一个 NSEnumetator 类型对象
-(id)objectForKey:key返回指定key 值的对象


NSMutableDictionary 常用方法总结
+(id)dictionaryWithCapacity:size创建一个size大小的可变字典
-(id)initWithCapacity:size初始化一个size 大小的可变字典
-(void)removeAllObjects删除字典中所有元素
-(void)removeObjectForKey:key删除字典中key位置的元素
-(void)setObject:obj forKey:key添加 (key , obj)到字典中去;若key已经存在,则替换值为 obj


NSArray 不可变数组 常用方法
+(id)arrayWithObjects:obj1,obj2,...nil创建一个新的数组,obj1,obj2......是他的元素对象,以nil对象结尾
-(BOOL)containsObject:obj确定数组中是否包含对象obj
-(NSUInteger)count返回数组元素个数
-(NSUInteger)indexOfObject:obj第一个包含obj元素的索引号
-(id)objectAtIndex;i返回存储在位置 i 的对象
-(void)makeObjectsPerformSelector:(SEL)selector将 selector 只是的消息发送给数组中的每个元素
-(NSArray*)sortedArrayUsingSelector:(SEL)selector根据selector 指示的比较方法对数组进行排序
-(BOOL)writeToFile:path atomically:(BOOL)flag将数组写入指定的文件中,如果 flag 为 YES,则需要先创建一个临时文件


NSmutableArray 常用方法总结
array创建一个空数组
+(id)arrayWithCapacity:size创建一个数组,指定容量为size
-(id)initWithCapacity:size初始化一个新分配的数组,指定容量为size
-(void)addObject:obj将对象obj添加到数组末尾
-(void)insertObject:obj atIndex:i将对象 obj 插入到索引为 i 的位置
-(void)replaceObject:obj atIndex:i将数组中索引为 i 处的元素用obj 置换
-(void)removeObject:obj从数组中删除所有是 obj 的对象
-(void)removeObjectAtIndex:i从数组中删除索引为 i 的对像
-(void)sortUsingSelector:(SEL)selector用 selector 只是的比较方法将数组排序
分享到:
评论

相关推荐

    safely安全使用NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSMutableString。-Swift开发

    FFSafeKit安全地使用NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSMutableString。 功能安全访问NSArray安全访问NSDictionary安全访问并执行更改FFSafeKit安全地使用NSArray,NSMutableArray,...

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

    这些类包括NSArray、NSSet、NSEnumerator和NSDictionary,以及它们的可变版本NSMutableArray、NSMutableSet和NSMutableDictionary。这些类提供了各种操作来处理对象的集合,如添加、删除、查找等。以下是关于这些类...

    iOS Crash防护

    iOS Crash防护内容涉及 NSArray/NSMutableArray、NSDictionary/NSMutableDictionary、NSString/NSMutableString、Unrecognized Selector、KVO、KVC 、野指针定位、内存泄漏/循环引用;主要是对常见易错的地方进行...

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

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

    oc.zip_NSArray_NSDictionary_去空

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

    iOS 开发知识树

    Foundation框架作为iOS应用开发的基础框架,提供了NSArray/NSMutableArray、NSDictionary/NSMutableDictionary等集合类,以及NSObject、NSString、NSData、NSDate等基础类,这些都是开发中经常用到的类。 在应用...

    IZKSafeObject.zip

    在iOS开发中,容器类是Objective-C和Swift编程中至关重要的组成部分...它们提供了一种组织和管理对象的方式,包括数组(NSArray, NSMutableArray)、字典(NSDictionary, NSMutableDictionary)、集合(NSSet, NSMutabl

    iOS常用的Category分类

    2. **NSArray/NSMutableArray Category**: 对于数组,我们可以添加方法如`containsObjectIdenticalTo:`来判断数组中是否存在完全相同的对象,而不是仅仅比较引用。对于可变数组,我们可以添加`...

    YXCTool:日常开发中一些用得到的代码整理

    HEIGHT当前设备屏幕的高度IPHONE_WIDTH当前设备屏幕的宽度kIsBangsScreen判断当前设备是否是刘海屏幕NSArray +崩溃主要是对NSArray , NSMutableArray一些数据安全做一层判断,降低因为数据异常导致崩溃的概率具体...

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

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

    iphone存储用法汇总

    从给定的文件标题“iPhone存储用法汇总”和描述“PDF中包含有iOS数据的存储类型详细介绍”,我们可以深入探讨iOS开发中常见的数据存储技术,特别是对于基础数据类型的使用,如字符串、数组和字典。以下是对这些核心...

    ios 各种分类集合类库

    集合类库则是一系列专门用于处理数组(NSArray、NSMutableArray)、字典(NSDictionary、NSMutableDictionary)、集合(NSSet、NSMutableSet)等数据结构的工具,帮助开发者更高效地操作这些数据。 首先,我们来...

    深入剖析 iOS 性能优化 · ming1016:study Wiki1

    iOS中的集合对象,如NSArray、NSMutableArray、NSSet、NSMutableSet、NSDictionary和NSMutableDictionary,它们各自提供了不同时间复杂度的接口方法。NSArray和NSMutableArray由于维护有序性和允许重复元素,某些...

    Object-c字符串数组字典

    在Objective-C中,字符串被封装在NSString类中,数组由NSArray和NSMutableArray类来管理,字典则由NSDictionary和NSMutableDictionary来实现,而集合则由NSSet和NSMutableSet来表示。此外,还提供了快速枚举等便捷的...

    Ipad 应用开发实战

    - 字典 (NSDictionary/NSMutableDictionary) 的管理和查询。 - 集合 (NSSet/NSMutableSet) 的创建与集合操作。 - 容器类在实际应用中的运用案例。 - **文件系统** - iOS 文件系统的理解。 - 文件管理器的使用...

    object c中关于foundation类得ppt

    ##### (4) 集合类(NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet、NSMutableSet) - **NSArray 和 NSMutableArray** - **定义**: - NSArray:不可变数组,一旦创建后不能更改。 - ...

    数组,字典容错

    在iOS开发中,数据结构的使用是至关重要的,特别是数组(NSArray和NSMutableArray)和字典(NSDictionary和NSMutableDictionary)这两种常用的数据容器。然而,在处理这些数据结构时,常常会遇到一些异常情况,例如...

    平时项目常用分类

    2. **NSArray/NSMutableArray Category**: 可能提供了对数组操作的扩展,如安全地获取元素、过滤、排序、去重等功能,使得操作更安全便捷。 3. **UIImage Category**: 可能包含图片处理的方法,如缩放、裁剪、颜色...

    ObjectiveC 最经典最全的基础库

    根据给定的文件信息,以下是对Objective-C中最经典、最全面的基础库的深入解析,主要聚焦于几个核心类:NSString、NSMutableString、NSArray、NSMutableArray、NSDictionary、NSMutableDictionary以及NSValue。...

    常见的集合类

    常见的集合类包括NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet和NSMutableSet等。这些类都是Foundation框架的一部分,为Objective-C和Swift开发者提供了强大的数据结构支持。在这个名为...

Global site tag (gtag.js) - Google Analytics