您的位置:首页 > 移动开发 > Objective-C

Objective-C语言——NSAarray不可变数组

2015-12-15 13:17 411 查看
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {

//不可变数组 NSArray
//初始化
//创建一个空数组
NSArray *array1 = [[NSArray alloc] init];
NSArray *array2 = [NSArray array];

//创建一个里面只有一个元素的不可变数组
NSArray *array3 = [NSArray arrayWithObject:@"Rick"];
// 等价于新语法: NSArray *array5 = @[@"Rick"];

//创建一个里面有多个元素的不可变数组
NSArray *array4 = [NSArray arrayWithObjects:@"zengxinsheng",@"xuyu",@"shenzhengnan",@"chenyaoxing", nil];
//nil只能出现在数组的最后,不能在数组中间存放nil,因为nil是一个NSArray的结束标志
//等价于新语法: NSArray *array6 = @[@"zengxinsheng",@"xuyu",@"shenzhengnan",@"chenyaoxing"];

//新语法
NSArray *array5 = @[@"Rick"];

NSArray *array6 = @[@"zengxinsheng",@"xuyu",@"shenzhengnan",@"chenyaoxing"];

//根据另一个数组产生新的数组
NSArray *array7 = [NSArray arrayWithArray:array6];
NSLog(@"%@",array7);

//一般使用类方法创建 array4
//NSArray *array8 = [[NSArray alloc]initWithObjects:@"zengxinsheng",@"xuyu",@"shenzhengnan",@"chenyaoxing", nil];

//从本地文件读取数组
NSArray *array8 = [NSArray arrayWithContentsOfFile:@""];

//从网络文件读取数组
//        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
//        NSArray *array9 = [NSArray arrayWithContentsOfURL:url];
//等价于上一个
NSArray *array9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"https://www.alipay.com"]];
NSLog(@"array9=%@",array9);

//求数组中元素的个数
NSUInteger count = array6.count;
NSLog(@"count = %lu",count);

//数组的操作
//访问数组中的元素
//访问 array6 中的第一元素

NSString *str = [array6 objectAtIndex:0];
NSLog(@"str = %@",str);

for (int i=0; i<count ; i++) {
NSLog(@"遍历array6 = %@",[array6 objectAtIndex:i]);

}

//新语法访问数组中的元素
NSString *str2 = array6[0];
NSLog(@"str2= %@",str2);

//NSNumber
NSNumber *number1 = [NSNumber numberWithInt:5];
//等价于
NSNumber *number2 = @5;

NSNumber *number3 = [NSNumber numberWithBool:YES];
//等价于
NSNumber *number4 = @YES;

//通过数组中的元素找下标
NSUInteger index = [array6 indexOfObject:@"zengxinsheng"];
NSLog(@"index = %lu",index);

//判断数组中是否存在某个元素

BOOL flag=[array6 containsObject:@"zengxinsheng"];
NSLog(@"flag = %d",flag);

//向不可变数组中增加一个元素,产生新的不可变数组
NSArray *newArray1 = [array6 arrayByAddingObject:@"wuzhipeng"];
NSArray *newArray2=[newArray1 objectAtIndex:4];
NSLog(@"newArray2=%@",newArray2);

for (int i=0; i<count+1; i++) {
NSLog(@"newArray%d=%@",i,[newArray1 objectAtIndex:i]);
}

//        NSString *string = @"123-456-789";
//        NSArray *array11 = [string componentsSeparatedByString:@"-"];
//        NSLog(@"%@",array11);

NSString *string= [newArray1 componentsJoinedByString:@"-"];
NSLog(@"string = %@",string);

NSArray *array12 = @[@"123",@"456",@"789",@"000"];
NSString *string1= [array12 componentsJoinedByString:@"√"];
NSLog(@"string1 = %@",string1);

NSArray *newarray2 =[string1 componentsSeparatedByString:@"√"];
NSLog(@"newarray2%@",newarray2);
NSString *newarray3 = [array12 componentsJoinedByString:@""];
NSLog(@"newarray3=%@",newarray3);

/*
使用NSArray 类注意事项
1.数组越界:当访问NSArray时,索引超出元素个数之后会报出一个异常结果,
所以最好检查一个索引结果是否越界,然后在进行调用
2.数组会对加入其中的对象自动把引用计数加一
3.不能在数组中中间存放nil,nil只能出现在数组的最后,因为nil是一个NSArray 结束的标志

*/

}
return 0;
}


运行结果

2015-12-15 13:17:44.824 OC_05_01[2641:60558] (
zengxinsheng,
xuyu,
shenzhengnan,
chenyaoxing
)
2015-12-15 13:17:45.693 OC_05_01[2641:60558] array9=(null)
2015-12-15 13:17:45.694 OC_05_01[2641:60558] count = 4
2015-12-15 13:17:45.694 OC_05_01[2641:60558] str = zengxinsheng
2015-12-15 13:17:45.694 OC_05_01[2641:60558]
遍历array6 = zengxinsheng
2015-12-15 13:17:45.694 OC_05_01[2641:60558]
遍历array6 = xuyu
2015-12-15 13:17:45.694 OC_05_01[2641:60558]
遍历array6 = shenzhengnan
2015-12-15 13:17:45.694 OC_05_01[2641:60558]
遍历array6 = chenyaoxing
2015-12-15 13:17:45.694 OC_05_01[2641:60558] str2= zengxinsheng
2015-12-15 13:17:45.696 OC_05_01[2641:60558] index = 0
2015-12-15 13:17:45.696 OC_05_01[2641:60558] flag = 1
2015-12-15 13:17:45.696 OC_05_01[2641:60558] newArray2=wuzhipeng
2015-12-15 13:17:45.696 OC_05_01[2641:60558] newArray0=zengxinsheng
2015-12-15 13:17:45.697 OC_05_01[2641:60558] newArray1=xuyu
2015-12-15 13:17:45.697 OC_05_01[2641:60558] newArray2=shenzhengnan
2015-12-15 13:17:45.697 OC_05_01[2641:60558] newArray3=chenyaoxing
2015-12-15 13:17:45.698 OC_05_01[2641:60558] newArray4=wuzhipeng
2015-12-15 13:17:45.698 OC_05_01[2641:60558] string = zengxinsheng-xuyu-shenzhengnan-chenyaoxing-wuzhipeng
2015-12-15 13:17:45.699 OC_05_01[2641:60558] string1 = 123√456√789√000
2015-12-15 13:17:45.699 OC_05_01[2641:60558] newarray2(
123,
456,
789,
000
)
2015-12-15 13:17:45.699 OC_05_01[2641:60558] newarray3=123456789000
Program ended with exit code: 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: