Objective-c之NSArray(NSMutableArray)

   
   
   
   
/* ---------------------------创建数组------------------------------ */
// 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);
// }

文章来自:http://blog.sina.com.cn/s/blog_4adf31ea0100nlnp.html

你可能感兴趣的:(Objective-c之NSArray(NSMutableArray))