#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
//NSArray的初始化以及常用数组操作方法简单归纳
//不可变数组
//数组的元素只能是对象,如果是int和float的话,就用NSNumber转换一下才能用
//初始化的几种方式,可以一个元素、多个元素、从已有组复制、从文件、网址等
NSArray *arr1 = [NSArray arrayWithObject:@"hello"];
for (id a in arr1) {
NSLog(@"%@",a);
}
//向数组对象初始化赋值,这里可以写任意对象的指针,结尾必须使用nil
NSArray *arr2 = [NSArray arrayWithObjects:@"hello",@"world", nil];
for (id b in arr2) {
NSLog(@"%@",b);
}
//定义指定类型的数组
NSString *str[3];
NSNumber *num[3];
//初始化数组元素赋值
str[0] = @"hello";
str[1] = @"world";
str[2] = @"!";
num[0] = [[NSNumber alloc] initWithInt:1];
num[1] = [[NSNumber alloc] initWithInt:2];
num[2] = [[NSNumber alloc] initWithInt:3];
NSArray *arr3 = [NSArray arrayWithObjects:str count:3];
NSArray *arr4 = [NSArray arrayWithObjects:num count:3];
//遍历数组方法一
for (id strr in arr3) {
NSLog(@"%@",strr);
}
//遍历数组方法二
for (int i = 0; i < [arr4 count]; i++) {
NSLog(@"%@",[arr4 objectAtIndex:i]);
}
//复制数组
NSArray *arr5 = [NSArray arrayWithArray:arr4];
for (NSNumber *c in arr5) {
NSLog(@"%@",c);
}
//给数组增加新元素(对象)
NSArray *newArr5 = [arr5 arrayByAddingObject:@"Augus"];
for (int i = 0 ; i < [newArr5 count]; i++) {
if (i == [newArr5 count] - 1) {
NSLog(@"%@",[newArr5 objectAtIndex:i]);
}
}
//把数组里元素利用连接符连接成字符串
NSString *strNew = [arr5 componentsJoinedByString:@"-"];
NSLog(@"%@",strNew);
//查询数组中是否包含某一元素,YES和NO
BOOL isContain = [arr3 containsObject:@"hello"];
NSLog(@"%d",isContain);
//查询并返回位置,如没有则为NSNotFound
NSInteger index = [arr3 indexOfObject:@"!"];
NSString *indexF = [NSString stringWithFormat:@"%ld",index];
NSInteger indexN = [indexF integerValue];//类型转换
NSLog(@"%ld",indexN);
//获取最后一个元素
NSString *lastEle = [arr3 lastObject];
NSLog(@"%@",lastEle);
//可变数组,5个元素
NSMutableArray *mutArr = [[NSMutableArray alloc] initWithCapacity:5];
//添加一个元素
[mutArr addObject:@"hello"];
[mutArr addObject:[NSNumber numberWithInt:66]];
[mutArr addObject:@"Augus"];
[mutArr addObject:[NSNumber numberWithDouble:19.9]];
//指定位置插入一个元素
[mutArr insertObject:@"world" atIndex:1];
//移除数组的元素,按名称、按序号等
NSLog(@"%@",mutArr);
[mutArr removeLastObject];
NSLog(@"%@",mutArr);
//替换元素
[mutArr replaceObjectAtIndex:2 withObject:@"!"];
NSLog(@"%@",mutArr);
//把一个数组添加到另一个里,实际上就是把数组里的元素都添加进去了
[mutArr addObjectsFromArray:arr4];
NSLog(@"%@",mutArr);
NSLog(@"%ld",[mutArr count]);
}
return 0;
}

oc随笔五:NSArray的更多相关文章

  1. OC第三节——NSArray和NSMutableArray

    1.OC数组和c数组的区别        C语言的数组:            相同类型变量的有序结合. 类型:可以是简答数据类型.构造数据类型                int     a[10 ...

  2. OC知识梳理-NSArray与NSMutableArray相关知识

    知识普及: 1.数组中的元素在系统中都会有其默认对应的下标,下标是一个整形的数字,默认从0开始. 例:NSArray *arr3 = @["345","234" ...

  3. OC——第五天NSSArray&nbsp;/NSDicti…

    1.oc中常用的集合(容器)有: 1.NSArry 数组:2.NSDicitionary 字典:3.NSSet 集(不常用) 数组:NSArry 继承自NSObject ,不可变的数组,用于管理一系列 ...

  4. iOS开发基础:OC数组对象NSArray的常用方法

    本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...

  5. OC第五节 ——点语法和@property

    一.setter和getter函数     1.回忆:如何访问对象中的成员变量    2.setter和getter函数的作用            setter  方法:   修改对象的字段/实例变 ...

  6. android 学习随笔五(界面)

    把数据库内容显示到界面 清单文件设置为线性布局(5大布局属于ViewGroup) 在清单文件中可以增加View显示 LinearLayout ll = (LinearLayout) findViewB ...

  7. OC随笔一:类

    总结:        在oc中,我们要整出一个类来,首先需要一个.h头文件和一个.m实现文件.一般我们创建的类都继承了根类,因为根类帮我们实现了很多实用的方法,而类里面会有变量(属性) .函数(方法) ...

  8. oc随笔六:字典

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  9. oc随笔四:NSString、NSNumber

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

随机推荐

  1. C# winform DataTable 批量数据处理 增、删、改 .

    1.批量新增,采用高效的SqlBulkCopy SqlBulkCopy DTS = new System.Data.SqlClient.SqlBulkCopy(con); DTS.NotifyAfte ...

  2. C++程序设计的技巧-Pimple的使用

    1.Pimpl概念 在进行项目开发中可能遇到的问题,程序编译耗时很长,每一次简单修改接口之后项目都会被完全重新编译,浪费了很多时间.这个机制是Private Implementation的缩写,顾明思 ...

  3. maven, sesame, openrdf, eclipse 的初始学习

    初始学习如下: http://rdf4j.org/sesame/tutorials/getting-started.docbook?view

  4. Python新手学习基础之循环结构——For语句

    for语句 在Python里,循环语句除了while语句,还有for语句. 通常我们用for循环来遍历(按约定的顺序,对每个点进行访问,且只做一次访问)有序列的内容,比如列表和字符串(列表内容我们会在 ...

  5. apscheduler的使用

    最近一个程序要用到后台定时任务,看了看python后台任务,一般2个选择,一个是apscheduler,一个celery.apscheduler比较直观简单一点,就选说说这个库吧.网上一搜索,晕死,好 ...

  6. selenium太有爱,我已离不开!!!

    自动化测试,超有用. PROXY,PLUGIN,PROFILE,WINDOWS HANDLE个个搞定!!! from selenium import webdriver from selenium.c ...

  7. MVC每层的职责

    MVC模式把应用程序分割成三层:模型.视图和控制器. 模型:模型代表着核心的业务逻辑和数据.模型封装了域实体的属性和行为,并暴露出了实体的属性. 视图: 视图负责转换模型并把它传递给表示层.视图应关注 ...

  8. 工控主板EM9161对ISO7816协议的支持

    在当前的金融POS终端及相关领域,ISO7816通讯协议得到了广泛应用.英创的工控主板EM9161,可在其异步串口的基础上,通过简单的设置,就可把串口转为符合ISO7816协议的接口,实现与各种智能卡 ...

  9. BZOJ1263: [SCOI2006]整数划分

    1263: [SCOI2006]整数划分 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 677  Solved: 332[Submit][Status] ...

  10. VS项目如何添加到svn

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.这里就讲一下VS2010如何将项目导入SVN版本控制. 工具 ...