黑马程序员——Objective--C笔记Foundation之NSArray,集合对象的内存管理

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一. NSArray

1.NSArrayOC中的数组类,开发中尽量使用NSArray替代C语言中的数组 

2.NSArray的创建


3.NSArray的使用注意:

1).NSArray直接使用NSLog()作为字符串输出时是小括号括起来的形式。

2).NSArray中不能存储nil,因为NSArray认为nil是数组的结束(nil是数组元素结束的标记),nil就是0,0也是基本数据类型,不能存放到               NSArray中

3).NSArray *array = [NSArray array]; //这样的数组永远是空的,不可能向其中增加值。(不可变性) 

4).只能存放任意OC对象,并且是有顺序的

5).不能存储非OC对象,比如int\float\double\char\enum\struct

6).它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素 

4.NSArray 的常见用法



5.用简化的方式定义数组

1).格式:@[数组元素];

例:NSArray *arr =@[@"1",@"one",@"3",@4,@"ONE"];

2).用简化的方式访问数组

例:NSString *str =arr[1];    c语言形式的数组元素访问

6.对数组进行遍历


7.把NSArray中的内容写到文件里

例:NSArray *arr=[NSArray arrayWithObjects:@"a",@"b",@1,@"c" ,nil];

     if  [arr writeToFile:@"/Users/liu liu/Desktop/arr .xml"atomically:YES]{

             NSLog(@"写入成功");

}

8.读取文件中的内容

NSArray *arr = [NSArrayarrayWithContentsOfFile:@"/Users/liwei/Desktop/arr.plist"];

            NSLog(@"%@",arr); 

9.NSArray与字符串 



二.NSMutableArray

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

2.数组的创建


3.NSMutableArray及基本使用 


三.集合对象的内存管理

1.当一个对象加入到集合中,那么该对象的引用计数会+1,当集合被销毁的时候,集合会向集合中的元素发送release消息 

2.集合对象内存管理原则:

1).当调用allocnewcopy(mutableCopy)方法产生一个新对象的时候,就必须在最后调用一 release或者autorelease

2).当调用retain方法让对象的计数器+1,就必须在最后调用一次release或者autorelease 

3.集合的内存管理细节

1). 当把一个对象添加到集合中时,这个对象会做了一次retain操作,计数器会+1
2). 
当一个集合被销毁时,会对集合里面的所有对象做一次release操作,计数器会-13> 当一个对象从集合中移除时,这个对象会一次release操作,计         数器会-1

4.普遍规律
1).如果方法名是add\insert开头,那么被添加的对象,计数器会+1

2).如果方法名是remove\delete开头,那么被移除的对象,计数器-1 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值