Objective-C在学习之惯用数据.数组(三)
Objective-C在学习之常用数据.数组(三)
上次学习了Objective-C的一些常用数据,这些数据有点像C语言的数据类型,其基本用法和C语言基本差不多,因为Objecitive-C语言是C语言严格的超集嘛。接下来我们看一下Objective-C的其他数据类型。
<不可变数组>NSArray数据:基本的数组类型,用此创建数组后,就不可以在向这个数组中添加元素或者删除其中的元素了。照这样说的话,NSArray主要用于那些创建后不需要再次更改的地方。
下面对这个数组进行遍历,在Objective-C中遍历一个数组有两种方法。
遍历方法一:利用C语言的遍历方法
不管用哪种方法,我们都可以得到如下的Log信息,因为数组中最后一个元素师self指针,因此会把这个数组的地址打印出来:
<可变数组>NSMutableArray数组:是一个可变数组,数组创建完成后还可以动态的再向数组中添加与删除元素,并且可以向指定的位置插入元素,有点C语言中的链表哦。
使用addObject方法向数组中添加元素:
注:代码均未进行实际验证,要是代码中有什么问题请告诉Eolution.cc,我会及时更正的,谢谢大家的支持。
上次学习了Objective-C的一些常用数据,这些数据有点像C语言的数据类型,其基本用法和C语言基本差不多,因为Objecitive-C语言是C语言严格的超集嘛。接下来我们看一下Objective-C的其他数据类型。
<不可变数组>NSArray数据:基本的数组类型,用此创建数组后,就不可以在向这个数组中添加元素或者删除其中的元素了。照这样说的话,NSArray主要用于那些创建后不需要再次更改的地方。
这个数组中可以存储任意类型的对象(object)的对象指针,但不能用于存储int、bool、char等等一些基本数据,这有点和C语言不同。下面将三个字符串和self指针存储在NSArray的一个实例对象中:
//初始化不可变数组 NSArray *mArray = [[NSArray alloc] initWithObjects:@"Evolution.cc",@"123456789",@"evolution.zyc@gmail.com",self,nil];
下面对这个数组进行遍历,在Objective-C中遍历一个数组有两种方法。
遍历方法一:利用C语言的遍历方法
for(int i = 0; i < [mArray count]; i ++){ NSLog(@"不可变数组:%@",[mArray objectAtIndex:i]); }遍历方法二:利用Objective-C 2.0 引入的快速枚举方法,不仅速度快,而且安全性高,(推荐使用)
for( NSString *str in mArray){ NSLog(@"不可变数组:%@",str); }
不管用哪种方法,我们都可以得到如下的Log信息,因为数组中最后一个元素师self指针,因此会把这个数组的地址打印出来:
不可变数组: Evolution.cc 不可变数组: 123456789 不可变数组: evolution.zyc@gmail.com 不可变数组: <MyClass:0x4e175e0>
<可变数组>NSMutableArray数组:是一个可变数组,数组创建完成后还可以动态的再向数组中添加与删除元素,并且可以向指定的位置插入元素,有点C语言中的链表哦。
//可变数组的初始化 NSMutableArray *eArray = [NSMutableArray array];
使用addObject方法向数组中添加元素:
//添加元素 - (void)addArray: (NSObject *) str{ [eArray addObject:str]; }使用removeObject方法删除元素
//删除数组中元素 -(void)deleteElements: (NSString *) str{ [eArray removeObject:str]; }使用replaceObjectAtIndex方法可以修改数组中的某一个元素。它有两个参数,第一个为数组元素的索引id;另一个是修改对象的指针。
//修改数组中的元素 -(void) changeElements: (int)ID :(NSObject *)str{ [eArray replaceObjectAtIndex:ID withObject:str]; }使用insertObject方法向数组中插入一个元素。带有两个参数:第一个插入对象的指针;第二个 插入的索引
//向数组中插入一个元素 -(void)insertElements:(int)ID:(NSObject *)str{ [eArray insertObject:str atIndex:ID]; }这就是可变数组的一些基本的用法,可变数组的遍历方法和不可变数组的相同。
注:代码均未进行实际验证,要是代码中有什么问题请告诉Eolution.cc,我会及时更正的,谢谢大家的支持。