NSArray创建和使用
// // main.m // NSArray // // Created by dingxiaowei on 13-5-12. // Copyright (c) 2013年 dingxiaowei. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h" void arrayCreate(){//静态创建数组,a不需要我们管理内存NSArray *array=[NSArray array];array = [NSArray arrayWithObject:@"abc"];array=[NSArray arrayWithObjects:@"d",@"e",@"f",nil];NSLog(@"%@",array);NSLog(@"数组的元素个数:%zi",[array count]); }void arrayUse(){NSArray *obj=[[[NSArray alloc] init] autorelease];NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c",obj,nil];if([array containsObject:@"a"]){NSLog(@"数组中包含了a元素");}NSLog(@"最后一个元素是:%@",[array lastObject]);NSLog(@"第2个元素是:%@",[array objectAtIndex:1]);NSLog(@"c元素的位置:%zi",[array indexOfObject:@"c"]+1); } #pragma mark - 数组的内存管理 void arrayMemory(){Student *stu1=[[Student alloc] init];Student *stu2=[[Student alloc] init];Student *stu3=[[Student alloc] init];NSLog(@"stu1的计数器%i",[stu1 retainCount]);//注意:将一个OC对象塞给array之后,这个对象的计数器加1NSArray *array=[[NSArray alloc] initWithObjects:stu1,stu2,stu3,nil]; //注意:将一个OC对象塞给array之后,这个对象的计数器加1NSLog(@"stu1的计数器%i",[stu1 retainCount]);NSLog(@"元素个数:%zi",array.count);[stu1 release];[stu2 release];[stu3 release];[array release]; } #pragma mark - 给数组里面的元素发送信息 void arrayMessage(){Student *stu1=[Student student];Student *stu2=[Student student];Student *stu3=[Student student];NSArray * array=[NSArray arrayWithObjects:stu1,stu2,stu3, nil];//静态方法不需要我们管理内存//将array里面多有对象都调用一次test方法//[array makeObjectsPerformSelector:@selector(test)];[array makeObjectsPerformSelector:@selector(test:) withObject:@"123"]; //注意冒号也是方法名的一部分,这个顶多只支持传一个参数 }#pragma mark - 遍历数组1(基本for循环遍历) void arrayFor1(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC对象都可以塞进数组中int count=array.count; //得到数组的元素个数for(int i=0;i<count;i++){ //返回idid obj=[array objectAtIndex:i]; //id=void *NSLog(@"%->%@",i,obj);} } #pragma mark - 遍历数组2(快速遍历) void arrayFor2(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC对象都可以塞进数组中//快速遍历int i=0;for(id obj in array){NSLog(@"%->%@",i,obj);i++;} } #pragma mark - 遍历数组3(用Block遍历) void arrayFor3(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC对象都可以塞进数组中//用Block遍历[array enumerateObjectsUsingBlok:^(id obj,NSUinter idx,BOOL *stop){NSLog(@"%i-%@",idx,obj);if(idx==2){//利用指针变量修改外面BOOL的值*stop=YES;//调用指针参数 改变外面的变量 终止循环 }}];} #pragma mark - 遍历数组4(用迭代器遍历) void arrayFor4(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC对象都可以塞进数组中//用迭代器遍历数组//获取数组的迭代器NSEnumerator *enumerator=[array objectEnumerator]; // //取得下一个对象 // [enumerator nextObject];id obj=nil;if(obj=[enumerator nextObject]){NSLog(@"obj=%@",obj);} // //返回迭代器中所有的元素 // [array allObjects];//注意:这个方法只能返回没由遍历过的,要使用这种方法返回所有的对象,就放在nextObject方法之前!!!NSArray * array2=[array allObjects];NSLog(@"array2:%@",array2); } int main(int argc, const char * argv[]) {@autoreleasepool {arrayCreate();arrayUse();arrayMemory();arrayFor1();arrayFor2();arrayFor3();arrayFor4();}return 0; }
转载于:https://www.cnblogs.com/dingxiaowei/archive/2013/05/13/3076005.html
NSArray创建和使用相关推荐
- NSStirng、NSArray、以及枚举(Method小集合)
以下内容由angellixf整理,这里制作记录: /************************************************************************** ...
- iOS开发-NSArray
忙了一上午,解决了几个bug,现在终于抽出来一点时间喝点水休息下, 想着系列这么浩大的一个工程,才刚刚开始写,不能断了,就跟写小说一样,既然是系列,那么就需要不停更... 好吧. 简单的说说iOS开发 ...
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
- NSArray/NSMutableArray基础操作
/******************************************************************************************* NSArray ...
- [转]Iphone NSString字符串常用方法
/******************************************************************************************* NSStrin ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- NSString 练习
//将"⽂文艺⻘青年"改成"213⻘青年". NSString *str = @"文艺青年"; NSString *str1 = [str ...
- NSString 字符串 操作 常用
//将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8 ...
- Object-c 中字符串与数组的处理
//一.NSString /*----------------创建字符串的方法----------------*/ //1.创建常量字符串. NSString *astring = @" ...
最新文章
- vue-component
- 谷歌移动应用强调设计元素:向极简风格转型
- uva 11997——K Smallest Sums
- [poj2752]Seek the Name, Seek the Fame_KMP
- 《A Practical Guide to Continuous Delivery》作者访谈录
- linux a7 a8,iOS12 A7/A8 固定Generator值 图文教程
- 拿姐姐身份证登记结婚竟然成了!婚姻户籍信息共享难在哪儿
- C#.NET面试题:一批编号为1-100全部开关朝上(开)的灯进行以下操作: 开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关……
- 社交自媒体整合网络营销推广方案的7个方法
- 利用MEGA-X选择模型及构建美化进化树
- HTML5印章绘制电子签章图片,中文英文椭圆章、中文英文椭圆印章
- 跨境电商亚马逊需要多少成本及运营亚马逊难吗
- 中集集团高科技企业中集飞瞳,贯彻国家人工智能与实体经济深度融合战略,成熟AI产品智能航运智能化港航智慧港口智能铁路智能多式联运
- Idea解决项目起不来的三个方法
- vue + moment.js 自己写日历
- 电气设备新能源行业周报
- 国外优秀区块链创业公司梳理
- excel 问题,vba
- 在Python中优雅的格式化字符串的两种方式
- 国企上班是怎样的感受?
热门文章
- jekenis父子结构项目打包_maven 父子工程打包 并且上传linux服务器
- python怎么只打印其中一行_如何在Python中让两个print()函数的输出打印在一行内?...
- PyCharm的光标插入与覆盖模式
- python databaselibrary_Robot Framework下DataBaseLibrary的使用
- 三菱d700变频器模拟量控制_PLC和变频器:开关量控制和模拟量控制什么区别?...
- JAVA面试题集收藏大放送
- eclipse配置本地连接 hadoop
- 准考证打印系统关闭怎么办_初级会计准考证无法打印受限制怎么办?学姐帮你解答相关问题...
- 禁用内存清理_MySql那些事儿(二):InnoDB架构介绍之内存篇
- c语言指着与数组,C语言指针与数组