黑马程序员技术交流社区
标题:
NSArray
[打印本页]
作者:
苏子瞻201068
时间:
2015-9-19 10:39
标题:
NSArray
1、数组的初始化
1
NSArray *array = [[NSArray alloc] initWithObjects:
@"
One
"
,
@"
Two
"
,
@"
Three
"
,
@"
Four
"
, nil];
数组的元素可以是任意的对象,不局限于字符串;
数组中装有元素的地址;
1
NSLog(
@"
%@
"
, array);
//
打印数组,实际上是打印数据的每一个对象。因为数组重写的Description方法
遍历数组中的对象
方法1:枚举器法
1
NSEnumerator *enumerator = [array objectEnumerator];
2
id
obj;
3
while
(obj = [enumerator nextObject]) {
4
NSLog(
@"
%@
"
, obj);
5
}
方法2:快速枚举法
1
for
(
id
obj
in
array){
2
NSLog(
@"
%@
"
, obj);
3
}
方法3:使用i值遍历
1
NSUInteger length = [array count];
//
返回数组元素的个数
2
obj = [array objectAtIndex:
2
];
//
返回单个元素的地址
3
NSInteger i;
4
for
(i =
0
; i<[array count];i++){
5
NSLog(
@"
%@
"
, [array objectAtIndex:i]);
6
}
2、可变数组
1
NSMutableArray *array = [[NSMutableArray alloc] init];
2
//
往可变数组中添加元素
3
[array addObject:
@"
one
"
];
4
[array addObject:
@"
two
"
];
5
[array addObject:
@"
three
"
];
交换两个数组的位置
1
[array exchangeObjectAtIndex:
0
withObjectAtIndex:
2
];
删除元素,remove
1
[array removeObject:
@"
one
"
];
2
[array removeObjectAtIndex:
1
];
3
[array removeAllObjects];
同时遍历和删除数组元素的时候,需要逆序;否则,会出现问题。
[url=]
[/url]
1
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:
@"
one
"
,
@"
two
"
,
@"
three
"
, nil];
2
//
逆序
3
NSEnumerator *enumerator = [array reverseObjectEnumerator];
4
NSString *str;
5
while
(str = [enumerator nextObject]) {
6
[array removeLastObject];
7
NSLog(
@"
%@
"
,str);
8
}
9
NSLog(
@"
%@
"
,array);[url=]
[/url]
3、数组和字符串的联合使用
将一个字符串逆序输出
[url=]
[/url]
1
NSString *str =
@"
I am a so bad man
"
;
2
NSArray *array = [str componentsSeparatedByString:
@"
/
"
];
//
用/分割字符串
3
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
4
NSEnumerator *enumerator = [array reverseObjectEnumerator];
5
NSString *obj;
6
while
(obj = [enumerator nextObject]) {
7
[mutableArray addObject:obj];
8
}
9
NSString *newStr = [mutableArray componentsJoinedByString:
@"
"
];
//
用指定的字符串,拼接字符串
[url=]
[/url]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2