iOS开发之NSArray和NSMutableArray的用法

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

NSMutableArray是动态的额NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容和NSArray和NSMutableArray的第一个数据的下标为0。

+++++++++++++++++++++++++++

NSArray

不可变数组

[array count] 数组的长度

[array objectAtindex 0] 传入数组脚标的id 得到的数据对象

[array WithObjects;....] 向数组对象初始化赋值。这里可以写任意对象的指针,结尾必须使用nil。

+++++++++++++++++++++++++++


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

NSMutableArray

可变对象数组

[NSMutableArray arrayWithCapacity:6] 初始化可变数组对象的长度,如果后面代码继续添加数组超过长度6以后NSMutableArray的长度会自动扩充,6是自己可以设置的

颗粒度。

[array addObject...] 向可变数组尾部添加数据对象。

[array addObjectFromArray ..]向可变数组尾部添加一个数组对象。

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

removeObject 和 removeObjectIdenticalTo

[array removeObject:(id)] 删除数组中的指定元素,根据对象isEqual消息判断。

[array removeObjectIdenticalTo:(id)] 删除数组中的指定元素,根据对象的地址判断。

[array removeObjectIdenticalTo:(id) inRange:(NSRange)]; 在指定范围内删除指定的元素

[array removeObjectAtIndex:(NSInteger)];删除数组中指定脚标索引的数据。

[array removeObjectsInArray:(NSArray*)];删除一个数组的元素。


NSArray *array =[NSArray alloc] initWithObjects:@"one",@"Two",@"Three",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]);


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








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值