OC中NSArray,NSNumber,NSDictionary

NSNumber
============================================================================
专门用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象

 //基本数据类型
 //专门用来装基础类型的对象
 NSNumber * intNumber = [[NSNumber alloc] initWithInt:5];
 NSNumber * floatNumber = [[NSNumber alloc] initWithFloat:3.14f];
 NSNumber * doubleNumber = [[NSNumber alloc] initWithDouble:6.7];
 NSNumber * charNumber = [[NSNumber alloc] initWithChar:'A'];
BOOL ret = [intNumber isEqualToNumber:intNumber2]; //这种比较也是可以跨不同对象的,比如:比较intNumber和floatNumber
 //通过以下方法可以还原这些基本数据类型的数据
 NSLog(@"%d", [intNumber intValue]);
 NSLog(@"%f", [floatNumber floatValue]);
 NSLog(@"%f", [doubleNumber doubleValue]);
 NSLog(@"%c", [charNumber charValue]);


NSArray
用于对象有序集合(相当于是数组)
===========================================================================
NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。

注:这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int, float, double, BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。


数组常见的用法首先是创建数组,然后对数组进行操作。

对数组进行的操作可以分为:增(插入),删,改,查 , 取,遍历,排序,比较,

对于NSArray来说,因为本身是不可变的,所以对NSArray的操作没有增和删。

NSArray  *array = [ NSArray alloc] init ];

1.取

- (id)objectAtIndex : (NSInteger *)aValue   得到所给下标的数组中的值

- (NSInteger *)indexOfObject: (id)object  得到所给对象在数组中的下标

- lastObject;  得到数组中最后一个值

例如:

    Student *stu1=[Student studentWithName:@"张三" andHobby:@"hk" andAge:21];
    Student *stu2=[Student studentWithName:@"李四" andHobby:@"hjik" andAge:25];
    Student *stu3=[Student studentWithName:@"王五" andHobby:@"fds" andAge:23];
    NSArray *stuArray=[[NSArray alloc]initWithObjects:stu1,stu2,stu3, nil];//创建数组对象并 初始化内容
    int c=[stuArray count];//返回是数组元素个数
    for (int i=0; i
    {
        Student *st=[stuArray objectAtIndex:i];//获取数组相关下表对应的元素
        [st sayHi];
    }
    NSLog(@"%d",[stuArray indexOfObject:stu3]);//indexOfObject是得到所给对象在数组中的下标
 结果是:

  我叫张三,今年21,我的爱好是hk

  我叫李四,今年25,我的爱好是hjik

  我叫王五,今年23,我的爱好是fds

2.查

- containsObject :(id)object  查询是否包含所给对象

3.遍历数组

三种方法:1.in  2.遍历器  3.for

另外,NSArray还有一个非常强大的方法  -makeObjectsPerformSelector () ;这个函数可以将一个操作作用在数组中的每个元素上。例如:

[array  makeObjectsPerformSelector:@selector(get:)] ;


字典NSDictionary
=====================================================================
相当于map,key 和 value 不能为nil空值,value可以用NSNull表示空值
字典中的元素是以键值对的形式存储的

@"one"和@"1"组成了一个键值对

@"one"称为值(value)@"1"称为键(key)

键值对的键和值,都是任意的对象,但是键往往使用字符串

字典存储对象的地址没有顺序

字典的遍历分为:键的遍历和值的遍历

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3", nil];
NSEnumerator *enumeratorKey = [dict keyEnumerator]; //键的遍历
NSEnumerator *enumeratorValue = [dict objectEnumerator]; //值的遍历通过键快速的找到值

 NSString *str = [dict objectForKey:@"1"];快速枚举法

 for(id obj in dict){ //这种方式遍历到的是键Key,获得了键,也就获得了值
     NSLog(@"%@",obj);
     NSLog(@"%@",[dict objectForKey:obj]);
 }

 

======================================================================

 

学过java的人 这些都so easy!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值