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
相关文章推荐
- postgresql报错Error while loading shared libraries: libpq.so.5: cannot open shared object file
- 单 例(Singleton)
- Xcode升级到7系列后 缺少 *.dylib库的解决方法
- FileReader createObjectURL
- [转]PDF预览插件PDFObject.js
- error while loading shared libraries: libreadline.so.5: cannot open shared object file
- 在IE中使用ActiveX控件,需要使用HTML中的标志是<OBJECT>,该标记几个重要的参数特性有:
- 【OpenGL】OpenGL帧缓存对象(FBO:Frame Buffer Object) 【转】
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
- JSON中JObject和JArray的修改
- Objective-C中的内存管理
- ObObjective-c 采集试图 UICollection
- Objective-c for 循环 九宫格
- java ObjectInputStream学习小记
- object is not afunction错误
- object-c定义属性与成员变量的区别
- Objective-C 数组一 "不可变数组"
- 【转】Objective-C Runtime 消息机制
- IOS开发之NSDictionary里setValue:forKey与setObject:forKey、objectForKey与valueForKey的差异
- Java Object Model(一)