1.OC的数组成员是任意的对象指针 与C中的链表结构类似(以nil结尾) 一切的数组操作不能越界
OC的数组分为不可变数组 NSArray 可变数组 NSMutableArray
01 | NSArray * array = [[NSArray alloc]initWithObjects:@ "one" ,@ "two" ,@ "three" , nil]; |
02 | NSLog(@ "%@" ,[array objectAtIndex:0]); |
03 | NSLog(@ "%ld" ,[array count]); |
04 | for (i = 0; i < [array count]; i++) { |
05 | NSLog(@ "%@" ,[array objectAtIndex:i]); |
08 | NSArray * array1 = [[NSArray alloc]initWithArray:array]; |
09 | NSArray * arry2 = [NSArray arrayWithArray:array]; |
10 | NSEnumerator * enumer = [array objectEnumerator]; |
15 | while (obj = [enumer nextObject]) { |
23 | NSEnumerator * enumer1 = [array reverseObjectEnumerator]; |
24 | while (obj = [enumer1 nextObject]) { |
27 | if ([obj isKindOfClass:[Dog class ]]) |
28 | if ([obj isMemberOfClass:[Dog class ]]) { |
2.不可变数组
03 | NSArray * array = [[NSArray alloc]initWithObjects:@ "one" ,@ "two" ,@ "three" ,@ "one" , nil]; |
05 | NSUInteger index = [array indexOfObject:@ "one123" ]; |
07 | index = [array indexOfObject:@ "one" inRange:NSMakeRange(1, 3)]; |
08 | if (index != NSNotFound) { |
12 | NSArray * array1 = [array objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]]; |
15 | [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]产生一个数字集合 |
3.可变数组
01 | NSMutableArray * array = [[NSMutableArray alloc]initWithObjects:@ "one" ,@ "two" ,@ "three" ,@ "four" , nil]; |
02 | [array addObject:@ "five" ]; |
03 | [array insertObject:@ "six" atIndex:5]; |
05 | [array removeObject:@ "six" ]; |
06 | [array removeObject:@ "two" inRange:NSMakeRange(0, 3)]; |
07 | [array removeLastObject]; |
08 | [array removeAllObjects]; |
10 | [array replaceObjectAtIndex:3 withObject:@ "ios" ]; |
11 | [array exchangeObjectAtIndex:0 withObjectAtIndex:3]; |
4.字符串分割与拼接
03 | NSString * ptr = @ "I am a man" ; |
04 | NSArray * array = [ptr componentsSeparatedByString:@ " " ]; |
05 | NSMutableArray * array1 = [NSMutableArray arrayWithArray:array]; |
06 | NSArray * array2 = [ptr componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@ ", " ]]; |
08 | NSCharacterSet 这是个字符集合类 |
09 | [NSCharacterSet characterSetWithCharactersInString:@ ", " ] |
11 | NSString * str = [array componentsJoinedByString:@ " " ]; |
13 | 若分割条件出现在开头或者结尾,则会出现空串@ "" ,如果不需要,则需要转化成NSMutableString对空串进行处理 |
14 | func1: [array1 removeObject:@ "" ]; |
15 | func2: for (id obj in array1){ |
17 | if ([obj isEqualToString:@ "" ]) |