黑马程序员技术交流社区

标题: Person *p[] 和 NSArray或NSMutableArray 有什么区别? [打印本页]

作者: 弹琴骚年    时间: 2014-10-25 12:35
标题: Person *p[] 和 NSArray或NSMutableArray 有什么区别?
本帖最后由 弹琴骚年 于 2014-10-26 16:46 编辑

我们都知道Person *p[] 数组里存放都是Person对象,NSArray或NSMutableArray数组存放的是任意对象。
但是我们什么时候该用Person *p[] 数组,又什么时候该用NSArray或NSMutableArray数组呢?
这两者之间的区别是什么?
  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"

  3. int main()
  4. {
  5.     Person *p1 = [[Person alloc] init];
  6.     p1.age = 10;
  7.     Person *p2 = [[Person alloc] init];
  8.     p2.age = 20;
  9.     Person *p3 = [[Person alloc] init];
  10.     p3.age = 30;
  11.    
  12.    
  13.     Person *p[] = {p1, p2, p3};
  14.    
  15.     NSArray ap1 = @[p1, p2, p3];
  16.     NSMutableArray ap2 = [NSMutableArray arrayWithArray:@[p1, p2, p3]];
  17.    
  18.     return 0;
  19. }
复制代码





作者: cctao    时间: 2014-10-25 21:22
NSArray是非可变数组,是输入iso的数组,意思是一旦你创建了NSArray 就不能更改其内容
NSMutableArray是可变数组,你可以更改其内容。
Persin * p是c语言中的数组。
作者: 弹琴骚年    时间: 2014-10-25 22:18
cctao 发表于 2014-10-25 21:22
NSArray是非可变数组,是输入iso的数组,意思是一旦你创建了NSArray 就不能更改其内容
NSMutableArray是可 ...

那什么情况下用Person *p[] ,什么情况下用NSMutableArray呢?

作者: LeeWong    时间: 2014-10-25 23:35
弹琴骚年 发表于 2014-10-25 22:18
那什么情况下用Person *p[] ,什么情况下用NSMutableArray呢?

存储的只是一种类型的数据就用Person  存储不同类型的数据就用NSArray吧  这是我的理解 或者你不确定要存什么类型的数据
作者: cctao    时间: 2014-10-26 01:20
LeeWong 发表于 2014-10-25 23:35
存储的只是一种类型的数据就用Person  存储不同类型的数据就用NSArray吧  这是我的理解 或者你不确定要存 ...

对的,我也这样认为,很多东西都是要用到时才会仔细想,这个老师视频里应该有例题。
作者: 我不明白    时间: 2014-10-26 09:46
我也看了老师的视频,老师视频里有,我刚看过,楼上回答的很好,就是那个意思。
作者: 弹琴骚年    时间: 2014-10-26 12:32
LeeWong 发表于 2014-10-25 23:35
存储的只是一种类型的数据就用Person  存储不同类型的数据就用NSArray吧  这是我的理解 或者你不确定要存 ...

存储同种类型的时候用Person数组,这点我理解了;
存储不同类型数据的时候用NSArray时,如果我要访问NSArray的对象,是不是也要先确定里面存的是什么类型的对象呢?然后我才能对里面的对象进行操作?
作者: LeeWong    时间: 2014-10-26 15:22
弹琴骚年 发表于 2014-10-26 12:32
存储同种类型的时候用Person数组,这点我理解了;
存储不同类型数据的时候用NSArray时,如果我要访问NSAr ...

数据时你存储的你肯定知道类型啊,不然就用id啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2