NSArray和NSMutableArray分为不可变与可变两种,NSArray是不能进行增、删、改的;它们各种用法通过下面的例子记下来,方便后面查看。
//
// NSArrayDemo.m
// OCDemo1
//
// Created by dcr on 2016/12/8.
// Copyright © 2016年. All rights reserved.
//
#import "NSArrayDemo.h"
#import "Person.h"
@implementation NSArrayDemo
- (void)printNSArray{
//OC的数组可以存储不同类型的对象,OC数组只能存储对象
Person *person = [[Person alloc]init];
person.className = @"Person";
NSArray *arr1 = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", person, @"5", nil];
//得到数组长度
int count = (int)[arr1 count];
NSLog(@"count = %d", count);
NSLog(@"arr1 containsObject = %d", [arr1 containsObject:@"4"]);
//得到最后一个元素
NSLog(@"arr1 lastObject = %@", [arr1 lastObject]);
//得到第一个元素
NSLog(@"arr1 firstObject = %@", [arr1 firstObject]);
//得到指定下标的元素
NSLog(@"arr1 objectAtIndex = %@", [arr1 objectAtIndex:2]);
//得到指定元素的下标
NSLog(@"arr1 indexOfObject = %d", (int)[arr1 indexOfObject:@"3"]);
//数组遍历
for(int i = 0; i < arr1.count; i++){
NSLog(@"arr1 i = %d, object = %@", i, [arr1 objectAtIndex:i]);
}
//增强for
for(id obj in arr1){
NSLog(@"str = %@", obj);
}
//迭代器
NSEnumerator *enumerator = [arr1 objectEnumerator];
id obj = nil;
while(obj = [enumerator nextObject]){
NSLog(@"obj = %@", obj);
}
}
- (void)printNSMutableArray{
Person *p1 = [[Person alloc] init];
p1.className = @"deng";
Person *p2 = [[Person alloc] init];
p2.className = @"zhao";
Person *p3 = [[Person alloc] init];
p3.className = @"tai";
NSArray *array = [[NSArray alloc] initWithObjects:p2, p3, nil];
NSMutableArray *arr = [[NSMutableArray alloc] init];
//添加元素
[arr addObject:p1];
[arr addObjectsFromArray:array];
for(Person *p in arr){
NSLog(@"class name = %@", p.className);
}
//删除元素
//删除所有元素
//[arr removeAllObjects];
//删除指定元素
//[arr removeObject:p2];
//删除最后一个元素
//[arr removeLastObject];
//删除指定下标元素
//[arr removeObjectAtIndex:1];
//交换元素位置
[arr exchangeObjectAtIndex:0 withObjectAtIndex:1];
for(Person *p in arr){
NSLog(@"class name = %@", p.className);
}
}
@end