@fiy-fish
2015-07-15T12:06:27.000000Z
字数 2500
阅读 1501
Objective-c
// main.m// day04-03-NSArray//// Created by Aaron on 15/7/6.// Copyright (c) 2015年 Aaron. All rights reserved.//#import <Foundation/Foundation.h>//相同类型的一些数据有序的排列所构成的集合//OC的数组可以存放一些对象//存储任意的对象//本质上,OC的数组存储的是对象指针//NSArray//NSMutableArraytypedef struct STD_INFO{int temp;struct STD_INFO *next;}Std;//创建#if 0int main(int argc, const char * argv[]) {@autoreleasepool {//下面的方法创建不可变数组是没有意义的NSArray *array = [[NSArray alloc] init];NSLog(@"%@",array);//@数字 OC2.0的新特性 可以快速将数字变成对象类型int temp = 10;NSLog(@"%@",@(temp));//用一些对象来初始化数组//对象按顺序排列//nil 表示数组结束了NSArray *array1 = [[NSArray alloc] initWithObjects:@"hello",@2, nil];NSLog(@"array1 = %@",array1);//用数组来初始化新的数组,可以实现可变和不可变之间的互相转换NSArray *array2 = [[NSArray alloc] initWithArray:array1];NSLog(@"%@",array2);//类方法提供了一个用单个对象创建数组的方法NSArray *array3 = [NSArray arrayWithObject:@222];NSLog(@"%@",array3);NSArray *array4 = [NSArray arrayWithObjects:@"123",@"321",@"1234", nil];NSLog(@"%@",array4);NSArray *array5 = [NSArray arrayWithArray:array4];NSLog(@"array5 = %@",array5);//2.0 新特性NSArray *array6 = @[@1,@2,@"hello"];NSLog(@"%@",array6);}return 0;}#endif//数组的可变和不可变是什么意思#if 0int main(){NSMutableString *str = [NSMutableString stringWithString:@"xxxxx"];NSString *str1 = @"hello";NSArray *array = [NSArray arrayWithObjects:str,str1, nil];NSLog(@"%@",array);[str appendString:@"......."];NSLog(@"%@",array);}#endif//索引有关的方法#import "Person.h"#if 0int main(){Person *p = [[Person alloc] init];NSArray *array = @[@1,p,@2,p,@3,@4];//获取数组的元素的个数//-(NSInteger)count;NSInteger count = [array count];NSLog(@"%ld",count);//获取指定索引的对象//索引从0开始//如果明确的知道自己取出来的对象是什么类型,那么可以直接用该类型的指针去接收NSNumber *obj = [array objectAtIndex:0];NSLog(@"%@",obj);//如果不知道对象类型,用idid obj1 = [array objectAtIndex:1];//确定对象的类型再执行方法if([obj1 isKindOfClass:[p class]]){[obj1 eatFruit];}//注意: 在OC里面,数组不允许越界//获取对象对应的索引NSInteger index = [array indexOfObject:p];//如果对象不在数组里,则返回NSNotFound//如果存在多份,那么返回找到的第一个索引if(index != NSNotFound){NSLog(@"index = %ld",index);}//检测数组里是否包含了某对象BOOL contains = [array containsObject:@2222222];NSLog(@"%@",contains?@"包含":@"不包含");//取第一个元素id obj2 = [array firstObject];//取最后一个元素id obj3 = [array lastObject];}#endif//抽取子数组int main(){NSArray *array = @[@1,@2,@3,@4];//抽取指定范围内的子数组NSArray *sub = [array subarrayWithRange:NSMakeRange(0, 2)];NSLog(@"%@",sub);//NSSetNSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet];[indexSet addIndex:0];[indexSet addIndex:2];sub = [array objectsAtIndexes:indexSet];NSLog(@"%@",sub);}
#import <Foundation/Foundation.h>@interface Person : NSObject-(void)eatFruit;@end
#import "Person.h"@implementation Person-(void)eatFruit{NSLog(@"人吃水果");}-(NSString *)description{return @"我是一个人";}@end
