关于OC学习中几个基础的类
【标题** 重点内容**】
在OC的学习中,有两个重要的概念————类和对象。
类的抽象性与对象的实体性共同构筑了我们的OC这门课程。
NSValue(父类NSObject)
(1)在C中一些基本变量在OC里面还能够持续使用吗?
答案是否定的,OC跟C不同点就是OC是面向对象语言,很多时候我们是在处理对象。在C中的一些float int char struct point等等,是纯粹的一个变量或者数值。只有对这些变量进行处理,使得他们成为对象后,才能够调用方法来实现我们的需要。
NSValue就提供了一种容器来盛装这些变量(或者常量),经过NSValue盛装(封装)后,这些C中的量就成为了可以使用的对象。
NSValue在iOS中应用最多的是对rect对象、point对象的定义、封装和处理。
For example:当我们需要处理一个矩形结构体时候,直接可以将它定义成一个矩形对象(放入集合中也可以),然后对对象发送增删改的消息,进而处理。
代码展示:
float a=3.45;//浮点型变量
NSLog(@”%f”,a);//这样输出没有问题,%f与a类型相同。
当我需要把a作为dictionary的key放进去的时候,我们就需要将a转化为对象放进去。
NSNumber *floatNum=[NSnumber numberWithFloat:a];
//这样就直接把a用对象floatNumber来表示了。
NSLog(@”%@”,a);//这样输出时候改成%@,不然肯定会报错。
(2)NSValue下面含有子类NSNumber
NSNumber主要用于实现基本变量与对象之间的转换
基本变量Transfomer对象:
可以看出,对于任何的int char bool float long都可以封装成对象
例如:将float a=15.234转换成字符串对象
分析:要将浮点型变量转换成字符串对象,首先得将浮点型变量转换成浮点型对象,然后将浮点型对象转换为字符串对象
(1)浮点型变量转换成浮点型对象,应用初始化方法,初始化一个浮点型对象
NSNumber *num=[[NSNumberalloc]intWithFloat:a];
(2)将浮点型对象转换成字符串,应用字符串转换方法,转换一个对象,返回一个字符串对象。
NSString *str=[num stringValue];
(3)输出字符串数组
NSLog(@”%@”,str);
对象Transfomer基本变量
可以看出,对于任何的封装过的int char bool float long对象,都可以解封装成各种原有变量。
(3)number的比较
这里还有一点值得注意,当我们将数组转成对象表示后,如何来比较大小呢?
NSNumber 继承自NSObject;可使用compare、isEqual等消息。
当能够将这些变量转换成对象后,我们就可以使用OC中这些高级点的类了。有了对象还怕啥!
*******************************************************************************************************************
例如将int数值存放入NSArray中
NSNumber *number1=[NSNumber number]//将int 转换为对象
NSMutableArray *arr=[[NSMutableArray alloc]array]//初始化一个可变数组
[arr addObject:number1];//将对象添加进数组arr中
for(NSNumber *num in arr)//遍历数组arr中所有变量
NSLog(@”%i”,[num intValue])//将对象再次转化为数值输出
如何用快速枚举遍历字典元素?
for(id key in dic)
{
NSLog(@"%c", [[dic objectForKey:key] charValue]);
}
*******************************************************************************************************************
NSString********************************************************
初始化字符串
取出指定字符或者子串
NSMutableString
增删改字符串值
NSArray*********************************************************
初始化数组
对数组中元素进行查看:
从数组里面导出新数组以及数组元素排序
数组元素
取出数组指定下标元素
NSMutableArray
增数组中的元素
删数组中的元素
改数组中的元素
NSDictionary***************************************************
字典就是关键字及其定义的集合,也称散列表或关联数组。
是在给定关键字(常为NSString类型的对象)下存储一个数值(任何类型的对象)。
使用键查询的优化存储方式,可立即找出要查询的数据,不需遍历整个数组进行查询。
对于频繁查询和大型数据集来说,使用字典比较数组要快很多。
创建字典:
+ (id)dictionaryWithObjectsAndKeys:(id)firstObject, ...(可变参)
需提供该字典所需要的全部对象和关键字,因为只有可读属性,只能在初始化的时候进行赋值。
获取字典中的值:
- (id)objectForKey:(id)aKey;
字典中Key-value对个数[dicntionary1 count];
根据key取出value [dictionary1 valueForKey:key];
根据value取出key [dictionary1 allKeysForObjest:value];
NSMutableDictionary*********************************************
向类发送dictionary消息
+ (id)dictionaryWithCapacity:(NSUInteger)numItems;
仅仅是一个建议,而不是对大小的限制
添加元素:
- (void)setObject:(id)anObjectforKey:(id)aKey;
若已经存在关键字,则用新值替换原有的值。
删除元素:
- (void)removeObjectForKey:(id)aKey;
增删改字典中key
增删改字典中value