黑马程序员-----oc语言学习笔记之foundation-NSArray

原创 2015年07月09日 23:47:35

------<Java培训、Android培训、iOS培训、.Net培训>、期待与您交流! -------


NSArray

NSArray是oc中的数组

*******************************************************************************
只能存储oc对象 是不可变的 初始化完后不能添加元素
NSAarry的创建方式
NSArray *arr =[NSArray arrayWithObjects:@"ong",@"two",nil];
NSAarry 创建时候的注意
NSArray *array = [NSArray array]; // 这样的数组永远是空的,不可能向其中增加值。(不可
变性)
NSArray中间不能存储nil,因为NSArray认为nil是数组的结束,这样后面的值就丢失了
********************************************************************************
NSArry的常见的用法
获取元素的个数
- (NSUInteger)count;
获得index位置的元素
- (id)objectAtIndex:(NSUInteger)index;
返回最后一个元素
- (id)lastObject;
查找anObject元素在数组中的位置(如果找不到,返回-1)NSNotFound
- (NSUInteger)indexOfObject:(id)anObject;
在range范围内查找anObject元素在数组中的位置
- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;

******************************************************************************

//NSArray的下标遍历

NSArray *arr=[NSArray arrayWithObjiects:@"1",@"2",@"3",@"4",nil];


for(int i=0;i<arr.count;i++)
{
	NSLog(@"%@",arr[i]);
}

//快速遍历

for(id *str in arr)
{
	NSLog(@"%@",id);
}

//block遍历
[arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){
	NSLog(@"下标:%ld,值为%@",idx,obj)
}];

***************************************************************************************
NSArray数据写入到文件中
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
//写入数据到文件中
if([arr writeToFile:@"/Users/liwei/Desktop/arr.plist" atomically:YES]){
NSLog(@"写入成功!");
}

从文件中读取数据到NSArray
//创建一个数组,读取xml文件
NSArray *arr = [NSArray arrayWithContentsOfFile:@"/Users/liwei/Desktop/arr.xml"];
NSLog(@"%@",arr);
//创建一个数组,读取plist
NSArray *arr = [NSArray arrayWithContentsOfFile:@"/Users/liwei/Desktop/arr.plist"];
NSLog(@"%@",arr)]

NSMutableArray


NSMutableArray是可变的, 随时可以往里面添加\更改\删除元素

NSMutableArray的创建
//创建空数组
NSMutableArray *arr = [NSMutableArray array];
//创建数组,并且指定长度为5,此时也是空数组
NSMutableArray *arr2 = [[NSMutableArray alloc] initWithCapacity:5];
//创建一个数组,包含两个元素
NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"1",@"2", nil];
//调用对象方法创建数组
NSMutableArray *arr4 = [[NSMutableArray alloc] initWithObjects:@"1",@"2", nil];
*****************************************************************************************
NSMutableArray的方法

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
在index位置插入一个元素

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1",@"2", nil];

[arr addObject:@"3"];

[arr insetObject:@"4" atIndex:4];

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
用anObject替换index位置对应的元素

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"1",@"2", nil];

[arr replaceObjectAtIndex:0 withObject:@"one"];
NSLog(@"%@",arr)]

- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
交换idx1和idx2位置的元素
***************************************************************************************
NSMutableArray 的错误用法

NSMutableArray *array = @[@"bob", @"steve", @"john"];
快速创建的对象是NSArray 赋值给NSMutableArray后,array变成NSArry

就不能再添加元素了[array addObject:@“Peter”]

NSMutableArray *array = [NSMutableArray arrayWithArray:@[@"bob", @"steve", @"john"]];
[array addObject:@"Peter"];


黑马程序员-OC语言-Foundation-NSArray

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-NSArray是什么? NSArray是OC中集合的一种,同样是Foundation框架下NSObject的一...
  • dsa_82639376
  • dsa_82639376
  • 2016年01月03日 12:54
  • 151

黑马程序员---C语言学习笔记之五

------- android培训、java培训、期待与您交流! ---------- 1.位段(位域)   使用伪指令#pragma pack (n),编译器将按照 n 个字节对齐;   使用伪...
  • yafengxnbh
  • yafengxnbh
  • 2015年03月16日 14:55
  • 184

黑马程序员:Hibernate基础知识

android培训、java培训
  • u012159707
  • u012159707
  • 2013年09月26日 15:42
  • 610

黑马程序员——java基础学习笔记——第一天

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.常见dos命令 dir:列出当前目录下的文件以及文件夹md:创建目录rd:删除目录cd:...
  • baidu_26484755
  • baidu_26484755
  • 2015年03月11日 20:45
  • 357

黑马程序员——OC视频学习过程6

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------  视频16: 1、为什么要引入import import引入的头文件,...
  • woxingwosu77
  • woxingwosu77
  • 2015年08月20日 15:00
  • 253

黑马程序员------oc语言学习笔记之类和对象

------Java培训、Android培训、iOS培训、.Net培训期待与您交流>------ 一、面向对象和面向过程 1、面向过程更取向与解决问题的过程和步骤,比如把衣服放进洗衣机 脱掉衣服,...
  • qq_18821687
  • qq_18821687
  • 2015年06月23日 22:14
  • 142

黑马程序员-----oc语言学习笔记之内存管理二

------Java培训、Android培训、iOS培训、.Net培训>期待与您交流! ------- 一、property的内存管理 @property参数 格式 @property (参...
  • qq_18821687
  • qq_18821687
  • 2015年06月28日 17:13
  • 188

黑马程序员-----oc语言学习笔记之内存管理一

-----Java培训、Android培训、iOS培训、.Net培训>期待与您交流! -------- OC语言内存管理一 1.内存管理的意义 由于移动设备的内存极其有限,所以每个app的内存也...
  • qq_18821687
  • qq_18821687
  • 2015年06月28日 08:04
  • 172

黑马程序员-----oc语言学习笔记之内存管理三

------Java培训、Android培训、iOS培训、.Net培训>期待与您交流! ------- 一、autorelease autorelease 是一种支持引用计数的内存管理方式 ...
  • qq_18821687
  • qq_18821687
  • 2015年06月30日 11:13
  • 143

黑马程序员_学习笔记JAVA基础总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!------- 1、方法重载 方法覆盖 重载:一个类中一种功能的多种实现方式,调用哪种实现...
  • qq_27123965
  • qq_27123965
  • 2015年04月19日 14:39
  • 421
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-----oc语言学习笔记之foundation-NSArray
举报原因:
原因补充:

(最多只允许输入30个字)