NSArray 的基本操作代码例子

本文提供了一些NSArray的基础操作代码示例,包括数组创建、复制、排序等,并介绍了如何使用这些方法来处理日常开发中的常见问题。

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


数组可以说是软件开发人员每天都要面对的基本操作,下面就分享一些 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(kCFAllocatorDefaul
t, (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"]){

//
//    }
//}
NSLog(@"files:%@",files);

//枚举
NSEnumerator *filenum;
filenum = [files objectEnumerator];while (filename = [filenum nextObject]) {

    NSLog(@"filename:%@",filename);
}

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

[files addObject:filename];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值