NSArray是静态的数组,就是它所指向的内容是不可改变的,它指向一段内存区域,一旦初始化,不能通过它对该内存区域的数据进行修改操作,但是它可以读数据。

NSMutableArray是动态的是NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容

NSArray和NSmutableArray的第一个数据的下标为0。

********************************************************************************

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);

 

//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);

}

//- (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 *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);

//将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);

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);

}

 

 for(NSString *arrayString1 in readArray1)

 {

  //NSLog(@"arrayString1=%@",arrayString1);

  NSArray *array1=[arrayString1 componentsSeparatedByString:@"#:)"]; 

  

  NSString *name1=[array1 objectAtIndex:0];

  NSString *page1=[array1 objectAtIndex:1];

  

  [self.array addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:name1,@"name",page1,@"page",nil]];

  

  NSString *fileString3=[NSString stringWithFormat:@"%@#:)%@",

          name1,page1];

  [self.markName addObject:fileString3];

  

 }