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