NSArray、NSMutableArray和NSMutableDictionary的用法
轉自:http://www.cnblogs.com/wangpei/admin/EditPosts.aspx?opt=1
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];
??
?}?
總結
以上是生活随笔為你收集整理的NSArray、NSMutableArray和NSMutableDictionary的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自定义消息编码绑定实现
- 下一篇: SQL Server技术问题之索引优缺点