区域网站设计,做淘客网站需要什么,iis发布域名网站,自己制作简单的小程序在Object C也提供了类似C#中的Array数组对象#xff0c;在Object C中使用NSArray 来创建数组#xff1b;但是在Object C中NSArray 只能存放对象类型的指针#xff0c;不能存放int#xff0c;char,double等基本数据类型。 一. 不可变数组对象 这个和之前的NSString有些类似在Object C中使用NSArray 来创建数组但是在Object C中NSArray 只能存放对象类型的指针不能存放intchar,double等基本数据类型。 一. 不可变数组对象 这个和之前的NSString有些类似NSArray 能够创建不可变的数组对象。一旦初始化这个对象就不能动态的修改和增加这个数组。 (1)使用arrayWithObjects来初始化数组内容,参考如下代码 NSArray *items[NSArray arrayWithObjects:abc,cdf]; 上面初始化了一个items数组对象但是值得注意的是这段代码会报错在Object C中数组对象的创建有个特殊的地方就是最后一个元素必须是nil,这意味着使用nil来标识数组对象的结束。正确的方式如下 NSArray *items[NSArray arrayWithObjects:abc,cdf,nil]; (2)可以使用count方法来获取数组的长度 NSArray *items[NSArray arrayWithObjects:abc,cdf,nil];
NSLog(%d,[items count]); 以上代码得到的值是2还是3呢一般人都会认为是3但是这个数组的长度是2上面已经提过了nil只是作为一个结束标识符并不能代表素组内容。现在修改代码如下 NSArray *items[NSArray arrayWithObjects:abc,cdf,nil,nil];
NSLog(%d,[items count]); 得到的数组长度仍然为2在第一个nil的位置就已经标识数组结束了所以后面出现再多的数组元素都没有作用。 (3)使用objectAtIndex来获取某个索引位置的数组元素 NSLog(%,[items objectAtIndex:0]); 以上代码可以获得素组对象items索引位置为0的元素但是一定要注意数组的长度否则数组越界异常。 (4)使用for来遍历数组元素 for(int i0;i[items count];i){NSLog(%,[items objectAtIndex:i]);
} 以上代码和我们平时使用遍历数组的方式无异基本都是这种情况。但是for还有另外一种使用方式和C#中的foreach使用方式一样。 for(NSObject *item in items){NSLog(%,item);
} 二. 动态数组 (1)根据上面所描述的大致可以猜得出来动态数组类和NSMutableString比较类似。我们使用NSMutableArray来定义一个动态数组。而且NSMutableArray 还提供了一些方法动态像数组中添加元素在NSMutableArray不用担心在添加元素的时候发生数组越界的问题当NSMutableArray长度被占满之后会自动扩容。 NSMutableArray *mutItems[NSMutableArray arrayWithCapacity:2]; 我们使用arrayWithCapacity来定义一个数组的容量。 (2)可以使用addObject方法来向对象数组中添加元素而且NSMutableArray和NSArray不一样不需要使用nil来介绍标识数组结束。NSMutableArray中同样提供了count 方法来获取数组的长度这里需要注意的是count和capacity 是不一样的count是获取的实际长度而capacity是可存放的长度。 NSMutableArray *mutItems[NSMutableArray arrayWithCapacity:12];
[mutItems addObject:abc];
[mutItems addObject:def];
NSLog(%d,[mutItems count]); 如果往muItems中继续添加元素直到超过12个muItems也不会报错而且count也会大于12这也是NSMutableArray的优势所在。 (3)使用insertObject 在特定的位置添加元素 NSMutableArray *mutItems[NSMutableArray arrayWithCapacity:2];[mutItems addObject:abc];[mutItems addObject:def];[mutItems addObject:45454];NSLog(%d,[mutItems count]);[mutItems insertObject:wang atIndex:1];for (NSString *item in mutItems) {NSLog(%,item);} 案例 (4)删除数组中的元素 - (void)removeObject:(id)anObject inRange:(NSRange)range;设置在一定范围内删除,如果在这个范围内没有匹配的元素则什么都不删除。 - (void)removeObject:(id)anObject;删除指定元素 - (void)removeObjectsInArray:(NSArray *)otherArray;删除数组中指定的元素 - (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;删除指定索引位置的元素 NSRange rangeNSMakeRange(0, 2);
[mutItems removeObject:wang inRange:range];
for (NSString *item in mutItems) {NSLog(----- %,item);
} (5)替换数组元素内容 - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject; 可以使用这个方法来替换某个索引位置的元素 [mutItems replaceObjectAtIndex:1 withObject:FFFFFFFFFFFFFF];for(NSString *item in mutItems){NSLog(************ %,item);} 本文只是很初略的记录了学习的一些常用方法NSArray和NSMutableArray 还提供了大量的其他方法仍有待继续努力学习和使用