#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. 搭建Nuget

    1.  新建一个 ASP.NET 空Web应用程序 2. 在新建的项目中引用 安装 NuGet.Server 2.1 右键项目中的引用,出现一个“管理NuGet程序包(N)”,点击进入 2.2  在搜 ...

  2. iOS开发之动画编程的几种方法

    iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKe ...

  3. vim 折叠代码技巧汇总

    以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...

  4. Android应用程序窗口(Activity)的窗口对象(Window) 的创建过程分析

    每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一个具体的应用程序窗口. 每一个Activity组件都有一个关联的ContextImp ...

  5. LeetCode_Restore IP Addresses

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  6. bat命令大全

    一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.   语法 echo [{on│off}] [message ...

  7. svn由于连接方在一段时间后没有正确答复或连接的主机没有反应连接尝试失败

    解决方法,关掉防火墙, service iptables status 查看iptables状态 service iptables restart iptables服务重启 service iptab ...

  8. Linux企业级项目实践之网络爬虫(4)——主程序流程

    当我们设计好程序框架之后就要开始实现它了.第一步当然是要实现主程序的流程框架.之后我们逐渐填充每个流程的细节和其需要调用的模块. 主程序的流程如下: 1.  解析命令行参数,并根据参数跳转到相应的处理 ...

  9. BOT、BT、PPP形式介绍(2)

    BT1.什么是BT     BT投资是BOT的一种变换形式,即Build-Transfer(建设—转让),政府通过特许协议,引入国外资金或民间资金进行专属于政府的基础设施建设,基础设施建设完工后,该项 ...

  10. hdu2795--Billboard

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2795 摘要:有一块尺寸为h*w的矩形长板,要在上面贴1*wi的海报n张,选择贴海报的位置是:尽量高,同一 ...