iPhone App开发实战手册学习笔记(3)之数据类型

来源:互联网 发布:快速通过精算师 知乎 编辑:程序博客网 时间:2024/05/18 15:27

1 前言

IOS中存储数据就要涉及到数据类型,今天我们来学习一下IOS中的数据类型。

2 详述

2.1 基本数据类型

在对象的实例变量中使用原始类型没有任何坏处,我们不用担心保留和释放。不需要只能加额外的对象开销。

NSInteger看起来很像类名,其实只是类型定义。类似的还有NSRange用来定义一组数据的范围和NSTimeInterval用浮点值表示一段时间。

永远是类型定义实例变量和对象实例变量有所不同,由于不涉及释放和拷贝,因此他们用@property的assign属性进行定义。例如:

@property (nonatomic,assign) NSUInteger exclamationCount;

@property (nonatomic,copy)NSString *originalString;

通过设计出数据类型复制可以简化代码:

exclamationCount = 8;

而且在 -dealloc方法中,也不需要释放exclamationCount。使用基础数据类型使代码更加简单,又不会牺牲任何功能。

2.2 对象化(Objectified)

值对象的好处:

(1)可以在集合中存储一组对象。

(2)对象类提供了很多功能方法来对这些值进行操作,在代码实现中会带来更多的的灵活性,同事节省很多的时间。

2.3 值对象举例

2.3.1 NSString

NSString是用于处理字符串的对象,其功能:

(1)Unicode支持及字符串编码转换。

(2)读取文件的文本及其编码

(3)分割和合并字符串。

(4)用来转义作为URL的字符串。

(5)字符串查找和获取Unicode字符数。

(6)将字符串转化成数字。

(7)大小写转换。

(8)字符格式化和本地化。

(10)根据用户的当前语言设置,使用很多项进行字符串比较,包括忽略变音符号和按数值排序。

2.3.2 NSNumber

再做数值转换时候会用到,如果用一个浮点数创建了一个值对象,然后向该对象获取一个无符号字符值(-unsignedCharValue),就会在原始对象内部进行一个没有任何损失的转换。

2.3.3 NSDecimalNumber

如果进行货币计算,可以使用该类,具有38位有效数字并且指数范围在-128~127的数字。

2.3.4 NSDate

日期对象,提供了操作时间的基本功能,如:

(1)比较哪个日期更早

(2)两个日期之间间隔的秒数

(3)可以和NSCalendar一起使用,计算涉及时区或闰年问题的两个时间之间间隔的月数和天数。

2.3.5 NSData

作为一个非结构化字节流的对象,提供了管理数据缓冲区的机制,数据对象通常要存储到磁盘上,因此提供了读写方法。

2.3.6 NSNull

表示空值。集合不允许有nil对象,所以当需要一个空的数组,字典,集时候可以使用NSNull。

2.3.7 NSValue

它可以将任何有效的变量类型封装成值对象。

2.4 集合

2.4.1 NSArray

可以指定集合内的顺序,提供了排序和筛选数据的机制。

2.4.2 NSDictionary

用键-值的方式来存放对象,实现了一个关联数组(associative array),可以用键来进行相关索引。

2.4.3 NSSet

用来存放那些对顺序没有要求的对象,通常用于数学运算,其中的方法可以测试等式,交集和子集。

还可以在NSArray中嵌套NSDictionary,或者在NSDictionary中嵌套NSArray。

3 结语

以上是所有内容,希望对大家有所帮助。

原创粉丝点击