#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
// 创建数组
NSArray *arr1 = nil;
// NSLog(@"%p", arr1);
NSObject *obj = [NSObject new];
arr1 = [NSArray arrayWithObjects:@"One", @"Two", @"Three", obj, nil];//结束标识,相当于C语言的“ ”
// NSLog(@"%p", arr1);
NSLog(@"arr1: %@", arr1);
// 推荐以下的新语法
NSString *str = @"Hello";
NSArray *arr2 = @[@"zhangsan", @"lisi", @"wangwu", @"zhaoliu" ,@"tianqi", str];//这样的方法自己主动在后面加入了nil
NSLog(@"arr2: %@", arr2);
// 訪问数组成员 objectAtIndex
// NSObject *tmpObj = [arr1 objectAtIndex:3];
id tmpObj = [arr1 objectAtIndex:3];
NSLog(@"tmpObj: %@", tmpObj);
// 推荐使用以下的新语法
tmpObj = arr2[2];
NSLog(@"arr2[2]: %@", tmpObj);
// 可变数组
NSMutableArray *firstArr = [NSMutableArray arrayWithCapacity:30];
// 加入
[firstArr addObject:@"One"];
[firstArr addObject:@"Two"];
[firstArr addObject:@"Three"];
[firstArr addObject:@"Four"];
[firstArr addObject:@"Five"];
NSLog(@"The Mutable Array: %@", firstArr);
NSMutableArray *secArr = [NSMutableArray arrayWithArray:arr2];
NSLog(@"secArr: %@", secArr);
// 删除
[secArr removeObject:@"tianqi"];
NSLog(@"==secArr: %@", secArr);
[secArr removeObjectAtIndex:2];
NSLog(@"===secArr: %@", secArr);
// 插入
[secArr insertObject:@"wangwu" atIndex:2];//id 是对象 index 是位置
NSLog(@"after insert: %@", secArr);
// 替换
NSObject *someObj = [NSObject new];
[secArr replaceObjectAtIndex:4 withObject:someObj];
NSLog(@"after replace: %@", secArr);
// C语言遍历数组
NSUInteger number = [secArr count];
for (int i = 0; i < number; i++) {
id obj = secArr[i];
NSLog(@"%@", obj);
}
// 通过枚举器来遍历数组(正着遍历)
NSEnumerator *enum1 = [secArr objectEnumerator];
id obj1;
NSLog(@"*************************");
while (obj1 = [enum1 nextObject]) {
NSLog(@"obj1: %@", obj1);
}
int main(int argc, const char * argv[])
{
// 创建数组
NSArray *arr1 = nil;
// NSLog(@"%p", arr1);
NSObject *obj = [NSObject new];
arr1 = [NSArray arrayWithObjects:@"One", @"Two", @"Three", obj, nil];//结束标识,相当于C语言的“ ”
// NSLog(@"%p", arr1);
NSLog(@"arr1: %@", arr1);
// 推荐以下的新语法
NSString *str = @"Hello";
NSArray *arr2 = @[@"zhangsan", @"lisi", @"wangwu", @"zhaoliu" ,@"tianqi", str];//这样的方法自己主动在后面加入了nil
NSLog(@"arr2: %@", arr2);
// 訪问数组成员 objectAtIndex
// NSObject *tmpObj = [arr1 objectAtIndex:3];
id tmpObj = [arr1 objectAtIndex:3];
NSLog(@"tmpObj: %@", tmpObj);
// 推荐使用以下的新语法
tmpObj = arr2[2];
NSLog(@"arr2[2]: %@", tmpObj);
// 可变数组
NSMutableArray *firstArr = [NSMutableArray arrayWithCapacity:30];
// 加入
[firstArr addObject:@"One"];
[firstArr addObject:@"Two"];
[firstArr addObject:@"Three"];
[firstArr addObject:@"Four"];
[firstArr addObject:@"Five"];
NSLog(@"The Mutable Array: %@", firstArr);
NSMutableArray *secArr = [NSMutableArray arrayWithArray:arr2];
NSLog(@"secArr: %@", secArr);
// 删除
[secArr removeObject:@"tianqi"];
NSLog(@"==secArr: %@", secArr);
[secArr removeObjectAtIndex:2];
NSLog(@"===secArr: %@", secArr);
// 插入
[secArr insertObject:@"wangwu" atIndex:2];//id 是对象 index 是位置
NSLog(@"after insert: %@", secArr);
// 替换
NSObject *someObj = [NSObject new];
[secArr replaceObjectAtIndex:4 withObject:someObj];
NSLog(@"after replace: %@", secArr);
// C语言遍历数组
NSUInteger number = [secArr count];
for (int i = 0; i < number; i++) {
id obj = secArr[i];
NSLog(@"%@", obj);
}
// 通过枚举器来遍历数组(正着遍历)
NSEnumerator *enum1 = [secArr objectEnumerator];
id obj1;
NSLog(@"*************************");
while (obj1 = [enum1 nextObject]) {
NSLog(@"obj1: %@", obj1);
}
// 通过枚举器来遍历数组(倒着遍历)
NSEnumerator *enum2 = [secArr reverseObjectEnumerator];
while (obj1 = [enum2 nextObject]) {
NSLog(@"reverse: %@", obj1);
}
NSLog(@"============================");
// 高速枚举
for (id obj in secArr) {
NSLog(@"Fast Enumeration: %@", obj);
}
return 0;
}
while (obj1 = [enum2 nextObject]) {
NSLog(@"reverse: %@", obj1);
}
NSLog(@"============================");
// 高速枚举
for (id obj in secArr) {
NSLog(@"Fast Enumeration: %@", obj);
}
return 0;
}