一些 NSArray 的基本操作代码例子

数组可以说是软件开发人员每天都要面对的基本操作,下面就分享一些 NSArray 的基本操作代码例子供苹果开发初学者参考,每段代码第一行会以注释方式说明该段代码的用途。

/*******************************************************************************************
     NSArray
     *******************************************************************************************/

/*---------------------------创建数组------------------------------*/
    //NSArray *array = [NSArray alloc] initWithObjects:
    @"One",@"Two",@"Three",@"Four",nil];

self.dataArray = array;
    [array release];

//- (unsigned) Count;数组所包含对象个数;
    NSLog(@"self.dataArray cound:%d",[self.dataArray count]);

//- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;
    NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);

/*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/

//arrayWithArray:
    //NSArray *array1 = [NSArray alloc] init];
    NSMutableArray *MutableArray = [NSMutableArray alloc] init];
    NSArray *array = [NSArray arrayWithObjects:
                      @"a",@"b",@"c",nil];
    NSLog(@"array:%@",array);
    MutableArray = [NSMutableArray arrayWithArray:array];
    NSLog(@"MutableArray:%@",MutableArray);

array1 = [NSArray arrayWithArray:array];
    NSLog(@"array1:%@",array1);

//Copy

//id obj;
    NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];

NSLog(@"oldArray:%@",oldArray);
    for(int i = 0; i < [oldArray count]; i++)
    {        
        obj = [oldArray objectAtIndex:i] copy];
        [newArray addObject: obj];
    }
    //     
    NSLog(@"newArray:%@", newArray);
    [newArray release];

//快速枚举

//NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    
    NSLog(@"oldArray:%@",oldArray);

for(id obj in oldArray)
    {
        [newArray addObject: obj];
    }
    //     
    NSLog(@"newArray:%@", newArray);
    [newArray release];

//Deep copy

//NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    
    NSLog(@"oldArray:%@",oldArray);    
    newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);
    NSLog(@"newArray:%@", newArray);
    [newArray release];

//Copy and sort

//NSMutableArray *newArray = [NSMutableArray alloc] init];
    NSArray *oldArray = [NSArray arrayWithObjects:
                         @"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];    
    NSLog(@"oldArray:%@",oldArray);
    NSEnumerator *enumerator;
    enumerator = [oldArray objectEnumerator];
    id obj;
    while(obj = [enumerator nextObject])
    {
        [newArray addObject: obj];
    }
    [newArray sortUsingSelector:@selector(compare:)];
    NSLog(@"newArray:%@", newArray);
    [newArray release];

/*---------------------------切分数组------------------------------*/

//从字符串分割到数组- componentsSeparatedByString:
    NSString *string = [NSString alloc] initWithString:@"One,Two,Three,Four"];
    NSLog(@"string:%@",string);    
    NSArray *array = [string componentsSeparatedByString:@","];
    NSLog(@"array:%@",array);
    [string release];

//从数组合并元素到字符串- componentsJoinedByString:
    NSArray *array = [NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];
    NSString *string = [array componentsJoinedByString:@","];
    NSLog(@"string:%@",string);

/*******************************************************************************************
     NSMutableArray
     *******************************************************************************************/
    /*---------------给数组分配容量----------------*/
    //NSArray *array;
    array = [NSMutableArray arrayWithCapacity:20];

/*--------------在数组末尾添加对象----------------*/
    //- (void) addObject: (id) anObject;
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    [array addObject:@"Four"];
    NSLog(@"array:%@",array);

/*--------------删除数组中指定索引处对象----------------*/    
    //-(void) removeObjectAtIndex: (unsigned) index;    
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    [array removeObjectAtIndex:1];
    NSLog(@"array:%@",array);

/*-------------数组枚举---------------*/    
    //- (NSEnumerator *)objectEnumerator;从前向后
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    NSEnumerator *enumerator;
    enumerator = [array objectEnumerator];

id thingie;
    while (thingie = [enumerator nextObject]) {
        NSLog(@"thingie:%@",thingie);
    }

//- (NSEnumerator *)reverseObjectEnumerator;从后向前
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    NSEnumerator *enumerator;
    enumerator = [array reverseObjectEnumerator];

id object;
    while (object = [enumerator nextObject]) {
        NSLog(@"object:%@",object);
    }

//快速枚举
    //NSMutableArray *array = [NSMutableArray arrayWithObjects:
    @"One",@"Two",@"Three",nil];
    for(NSString *string in array)
    {
        NSLog(@"string:%@",string);
    }

/*******************************************************************************************
     NSDictionary
     *******************************************************************************************/

/*------------------------------------创建字典------------------------------------*/
    //- (id) initWithObjectsAndKeys;

//NSDictionary *dictionary = [NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];
    NSString *string = [dictionary objectForKey:@"One"];
    NSLog(@"string:%@",string);
    NSLog(@"dictionary:%@",dictionary);
    [dictionary release];

/*******************************************************************************************
     NSMutableDictionary
     *******************************************************************************************/

/*------------------------------------创建可变字典------------------------------------*/    
    //创建
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];

//添加字典
    [dictionary setObject:@"One" forKey:@"1"];
    [dictionary setObject:@"Two" forKey:@"2"];
    [dictionary setObject:@"Three" forKey:@"3"];
    [dictionary setObject:@"Four" forKey:@"4"];
    NSLog(@"dictionary:%@",dictionary);

//删除指定的字典
    [dictionary removeObjectForKey:@"3"];
    NSLog(@"dictionary:%@",dictionary);

/*******************************************************************************************
     NSValue(对任何对象进行包装)
     *******************************************************************************************/

/*--------------------------------将NSRect放入NSArray中------------------------------------*/    
    //将NSRect放入NSArray中
    NSMutableArray *array = [NSMutableArray alloc] init];
    NSValue *value;
    CGRect rect = CGRectMake(0, 0, 320, 480);    
    value = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];
    [array addObject:value];
    NSLog(@"array:%@",array);

//从Array中提取
    value = [array objectAtIndex:0];
    [value getValue:&rect];
    NSLog(@"value:%@",value);

/*******************************************************************************************
     从目录搜索扩展名为jpg的文件
     *******************************************************************************************/

//NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *home;
    home = @"../Users/";

NSDirectoryEnumerator *direnum;
    direnum = [fileManager enumeratorAtPath: home];

NSMutableArray *files = [NSMutableArray alloc] init];

//枚举
    NSString *filename;
    while (filename = [direnum nextObject]) {
        if([filename pathExtension] hasSuffix:@"jpg"]){
            [files addObject:filename];
        }
    }

//快速枚举
    //for(NSString *filename in direnum)
    //{
    //    if([filename pathExtension] isEqualToString:@"jpg"]){
    //        [files addObject:filename];
    //    }
    //}
    NSLog(@"files:%@",files);

//枚举
    NSEnumerator *filenum;
    filenum = [files objectEnumerator];
    while (filename = [filenum nextObject]) {
        NSLog(@"filename:%@",filename);
    }

//快速枚举
    //for(id object in files)
    //{
    //    NSLog(@"object:%@",object);
    //}

一些 NSArray 的基本操作代码例子的更多相关文章

  1. 【编程技巧】一些 NSArray 的基本操作代码例子

    /*---------------------------切分数组------------------------------*/ //从字符串分割到数组- componentsSeparatedBy ...

  2. 30个php操作redis常用方法代码例子

    From: http://www.jb51.net/article/51884.htm 这篇文章主要介绍了30个php操作redis常用方法代码例子,本文其实不止30个方法,可以操作string类型. ...

  3. 30 个 php 操作 redis 常用方法代码例子

    这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参 ...

  4. 最小包围多边形(凸包;最小包围点集)——C代码例子

    本文来自:http://alienryderflex.com/smallest_enclosing_polygon/ 这个C代码例子需要一群2维点集,如下图所示: 要获得包含这些点的最小多边形如下图所 ...

  5. 捕鱼达人代码例子下载地址 mac版

    捕鱼达人代码例子下载地址  mac版: http://pan.baidu.com/share/link?shareid=1431898404&uk=3189484501

  6. 捕鱼达人代码例子下载地址 Win版

    捕鱼达人代码例子下载地址 Win版:: http://pan.baidu.com/share/link?shareid=1601576904&uk=3189484501

  7. jeecg 主-附表生成代码例子

    jeecg 主-附表生成代码例子 - CSDN博客https://blog.csdn.net/u010411264/article/details/51243277 JEECG Online Codi ...

  8. 神经网络:caffe特征可视化的代码例子

    caffe特征可视化的代码例子 不少读者看了我前面两篇文章 总结一下用caffe跑图片数据的研究流程 deep learning实践经验总结2--准确率再次提升,到达0.8.再来总结一下 之后.想知道 ...

  9. 爱漂泊人生 30个php操作redis常用方法代码例子

    http://www.justwinit.cn/post/8789/ 背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcach ...

随机推荐

  1. 2018-2019-1 20165231 实现mypwd(选做)

    实现mypwd 要求: 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd pwd: 在Linux层次结构中,想要知道当前所处的目录, ...

  2. L2-004 这是二叉搜索树吗? (25 分) (树)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805070971912192 题目: 一棵二叉搜索树可被递归地定义为 ...

  3. css悬浮提示框

    效果图: code: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  4. java 新手必看大全

    背景:c#开发人员 学习java 新手一枚.只适合新手 1:配置java环境 (win10环境参考本目录java环境配置) 2:IDEA 熟悉开发工具 (当初没学java 很大的一个原因就是工具e文 ...

  5. AXI4 STREAM DATA FIFO

    参考:http://www.xilinx.com/support/documentation/ip_documentation/axis_infrastructure_ip_suite/v1_1/pg ...

  6. C#使用RabbitMQ(转)

      1. 说明 在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地 ...

  7. tp5 自定义排序

  8. STM32L1X系列GPIO运用

    STM32L15x 系列中基本步骤是和STM32F10x相同的 一 配置GPIO 初始化GPIO时我们需要催一下内容进行配置(以下步骤没有必然顺序) 1 创建GPIO结构 GPIO_InitTypeD ...

  9. 用Python写一个zip文件的密码破解程序

    最近在读<python绝技:运用python成为顶级黑客>一书,文中有如何运用Python中zipfile自带的方法破解zip文件.短短的十几行代码就将一个程序实现了.下面给出书中所用的代 ...

  10. MongoD 语法

    MongoD 语法 1.常用 1 .查看有哪些库 > show dbs; admin 0.000GB config 0.000GB local 0.000GB 2 .当前库,只存在于内存中 &g ...