一、NSArray
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
/*
NSString NSArray NSDictionary
*/
// int a[10] = {0,1,2,3...};
// arr1数组对象
__unused NSArray *arr1 = @[@"0",@"1",@"2"];
__unused NSArray *arr2 = [NSArray arrayWithObjects:@"0",@"1",@"2", nil];
// 元素只要是 id类型即可 arr3数组中有两个元素 这两个元素都是数组
__unused NSArray *arr3 = @[arr1,arr2];
// 数组对数组进行初始化
__unused NSArray *arr4 = [NSArray arrayWithArray:arr2];
//NSLog(@">>%@ %@ %@ %@",arr1,arr2,arr3,arr4);
// OC数组中不能存放基本数据类型 必须在基本数据类型前加@符 才能保存
// NSString @"10" NSNumber @10
// NSNumber 基本数据类型面向对象的封装 基本数据类型转化为NSNumber类型后转变成一个对象
__unused NSArray *arr5 = @[@10,@1.0];
__unused NSNumber *num1 = [NSNumber numberWithInt:10];
__unused NSNumber *num2 = [NSNumber numberWithFloat:1.0];
__unused NSNumber *num3 = [NSNumber numberWithChar:'C'];
__unused NSNumber *num4 = [NSNumber numberWithBool:TRUE];
Person * p = [[Person alloc] init];
// 格式化输出%@ 调用该对象的description方法 NSObject方法
NSLog(@"%@",p);
__unused NSArray * arr6 = @[arr1,@"wahaha",@10.5,p];
//NSLog(@"%@",arr6);
// 获取数组中元素的个数
NSLog(@"count is %zd",arr6.count);
// 下标直接获取数组中的对象
id obj = arr6[0];
NSLog(@"obj is %@",obj);
// 数组越界崩溃问题
NSInteger index = 100;
// 防止数组越界
if(arr6.count > index){
__unused id obj = arr6[index];
}
// 通过索引获取数组中的元素
__unused id obj1 = [arr6 objectAtIndex:1];
// 遍历数组
// 快速枚举
// obj逐一指向arr6数组中的元素
for (id obj in arr6){
//NSLog(@"obj is %@",obj);
// 判断对象类型
if([obj isKindOfClass:[NSString class]]){
NSLog(@"obj is NSString %@",obj);
}
}
// 枚举器遍历数组
NSEnumerator * enumer = [arr6 objectEnumerator];
id obj2 = [enumer nextObject];
while (obj2 == [enumer nextObject]) {
NSLog(@"NSEnumerator is %@",obj2);
}
}
return 0;
}
二、NSMutableArray
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// NSArray 不可变数组 不能被修改
// NSMutableArray 可变数组 可被修改
__unused NSMutableArray * arr1 = [NSMutableArray array];
__unused NSMutableArray * arr2 = [[NSMutableArray alloc] init];
__unused NSMutableArray * arr3 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"2",nil];
__unused NSMutableArray * arr4 = [NSMutableArray arrayWithArray:arr3];
// 添加
// 向可变数组中添加元素
NSLog(@"before arr4 %@ %zd",arr4,arr4.count);
[arr4 addObject:@"4"];
NSLog(@"after arr4 is %@ %zd",arr4,arr4.count);
// 删除
// 删除数组中的指定的元素
// [arr4 removeObject:@"3"];
// // 删除数组的最后一项
// [arr4 removeLastObject];
// // 删除数组中的所有元素
// [arr4 removeAllObjects];
// // 删除指定index下标的元素
// [arr4 removeObjectAtIndex:2];
// // 指定一个Range 将满足Range条件的对象删除
// [arr4 removeObject:@"2" inRange:NSMakeRange(0, 2)];
// NSLog(@"%@ %zd",arr4,arr4.count);
// 修改
// - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
[arr4 replaceObjectAtIndex:2 withObject:@"10"];
NSLog(@"%@",arr4);
NSArray * arr5 = @[@"q",@"w",@"e"];
// 将整个数组arr5 当成一个元素添加到arr4中
[arr4 addObject:arr5];
// 将数组arr5中的每一个元素都添加到arr4中
[arr4 addObjectsFromArray:arr5];
NSLog(@"arr4 is %@",arr4);
}
return 0;
}