1、数组的初始化

 NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", @"Four", nil];

数组的元素可以是任意的对象,不局限于字符串;
数组中装有元素的地址;

 NSLog(@"%@", array);    //打印数组,实际上是打印数据的每一个对象。因为数组重写的Description方法

遍历数组中的对象
方法1:枚举器法

 NSEnumerator *enumerator = [array objectEnumerator];
id obj;
while (obj = [enumerator nextObject]) {
NSLog(@"%@", obj);
}

方法2:快速枚举法

 for(id obj in array){
NSLog(@"%@", obj);
}

方法3:使用i值遍历

 NSUInteger length = [array count]; //返回数组元素的个数
obj = [array objectAtIndex:]; //返回单个元素的地址
NSInteger i;
for(i = ; i<[array count];i++){
NSLog(@"%@", [array objectAtIndex:i]);
}

2、可变数组

 NSMutableArray *array = [[NSMutableArray alloc] init];
//往可变数组中添加元素
[array addObject:@"one"];
[array addObject:@"two"];
[array addObject:@"three"];

交换两个数组的位置

 [array exchangeObjectAtIndex: withObjectAtIndex:];

删除元素,remove

 [array removeObject:@"one"];
[array removeObjectAtIndex:];
[array removeAllObjects];

同时遍历和删除数组元素的时候,需要逆序;否则,会出现问题。

 NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one",@"two",@"three", nil];
//逆序
NSEnumerator *enumerator = [array reverseObjectEnumerator];
NSString *str;
while (str = [enumerator nextObject]) {
[array removeLastObject];
NSLog(@"%@",str);
}
NSLog(@"%@",array);

3、数组和字符串的联合使用

将一个字符串逆序输出

 NSString *str = @"I am a so bad man";
NSArray *array = [str componentsSeparatedByString:@" "]; //用空格分割字符串
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
NSEnumerator *enumerator = [array reverseObjectEnumerator];
NSString *obj;
while (obj = [enumerator nextObject]) {
[mutableArray addObject:obj];
}
NSString *newStr = [mutableArray componentsJoinedByString:@" "]; //用指定的字符串,拼接字符串

结题!!!

OC基础数据类型-NSArray的更多相关文章

  1. OC基础--数据类型与表达式

    前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...

  2. OC基础数据类型-NSNumber

    1.NSNumber:专门用来装基础类型的对象,把整型.单精度.双精度.字符型等基础类型存储为对象 //基本数据类型 //专门用来装基础类型的对象 NSNumber * intNumber = [[N ...

  3. OC基础数据类型-NSSet

    1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合.集合是一种哈希表,运用散列算法,查找集合中的元素比数组 ...

  4. 【转】 OC基础数据类型-NSSet

    原文 : http://www.cnblogs.com/GISerYang/p/3340937.html 1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过 ...

  5. OC基础数据类型-NSString

    1.字符串的初始化 //字符串的初始化 NSString *str = @"Hello world!"; NSString *str2 = [[NSString alloc] in ...

  6. OC基础数据类型-NSData-NSMutableData-NSString

    NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛.NSData创建后不可以再修改,NSMutableData可以再次修改. 1.NSStrin ...

  7. OC基础数据类型-NSData

    1.NSData,数据,当我们需要把一些信息写入到文件里或发送到网络上,我们需要把这些数据转换下,变成纯粹的0.1字符流 1 NSString * str = @"hello, world! ...

  8. OC基础数据类型-NSValue

    1.NSValue:将指针等复杂的类型存储为对象 struct sct { int a; int b; }sctt; NSValue * value = [[NSValue alloc] initWi ...

  9. OC基础数据类型-NSDictionary

    1.字典NSDictionary 字典与数组的区别:数组讲究顺序,而字典可以快速帮助我们找到数据,数据是我们的目的,键是我们的手段 NSDictionary *dict = [[NSDictionar ...

随机推荐

  1. 自定义ajax,添加loading效果

    自定义ajax /** * @desc 自定义ajax请求,添加等待gif */ var n=0; $.defineAjax=function(obj){ n++; if(!$('#loadingDi ...

  2. Shiro: 权限管理

    一.权限管理 1.什么是权限管理   权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问且只能访问自己被授权的资源.   权限管理包括用户身份认证和 ...

  3. java.net.SocketException四大异常解决方案---转

    java.net.SocketException如何才能更好的使用呢?这个就需要我们先要了解有关这个语言的相关问题.希望大家有所帮助.那么我们就来看看有关java.net.SocketExceptio ...

  4. Java 实例 - 标签(Label)

     Java 实例 Java 中的标签是为循环设计的,是为了在多重循环中方便的使用break 和coutinue . 以下实例当在循环中使用 break 或 continue 循环时跳到指定的标签处: ...

  5. sublime text 3 PHP 所需插件

    1. PHP代码语法验证插件:SublimeLinter 2.Bracket Highlighter 用于匹配括号,引号和html标签.对于很长的代码很有用.安装好之后,不需要设置插件会自动生效 3. ...

  6. 在centos linux上安装docker

    前置条件 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值大于3.10即可. $ uname -r 2.确保yum是最新的 $ yum update 3.安装 Docker y ...

  7. .Net程序员玩转Android系列之三~快速上手

    快速环境搭建和Hello World 第一步:JAVA SDK(JDK)的安装: 官方下载地址: http://www.oracle.com/technetwork/java/javase/downl ...

  8. [android] 练习viewpagerindicator的使用(一)

    主要是学习一下使用这个库 activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...

  9. Error:All flavors must now belong to a named flavor dimension.

    环境 android studio 3.0 错误 Error:All flavors must now belong to a named flavor dimension. 解决 在build.gr ...

  10. bash的常用功能呢

    一.tab键可以自动补齐命令 二.命令历史 1.history 查看之前敲过的所有命令 2.!历史命令编号 调用历史的某一个命令 三.命令别名 1.设置别名    alias 别名=‘命令’ 2.移除 ...