数字、字符串和集合
Foundation框架提供了一些基本对象。这些基本对象包括数字、字符串和集合,集合指的是能够以数组、字典和集的形式使用成组对象的能力。
使用预编译命令导入Foundation会显著地增加程序的编译时间。然而,通过使用预编译的头文件是经过编译器预先处理过的文件。默认情况下,所有项目都会受益于预编译的头文件。
一、数字对象
1、概念:可根据基本数据类型来创建的对象。
2、创建方式:使用NSNumber类来创建
如:NSNumber *intNumber;
intNumber=[NSNumber numberWithInterger:100];
3、NSNumber的创建方法和检索方法
1>、对于每个基本值,类方法都为它分配了一个NSNumber对象,并将其设置为指定的值。这些方法以numberWith开头,之后是类型。此外,可以使用实例方法为以前分配的NSNumber对象设置指定的值。这些都是initWith开头。
2>、检索方式,如:
NSLog(@”%li”,[intNumber integerValue];
3>、isEqualToNumber: 方法根据数值比较两个NSNumber对象。
4>、compare: 方法
a、可用compare: 方法来测试一个数值型的值是否在数值上小于、等于或大于另一个 值。
b、消息表达式:[intNumber compare:myNumber]
c、结果:当intNumber中的值小于myNumber中的值时,返回值NSOrderedAscending; 如果两个数相等,则返回值NSOrderedSame;如果大于,则返回值NSOrderedDescending。
4、注意事项
1>、从NSNumber对象获得的值必须和存储在其中的值类型一致。
2>、如果在NSNumber对象中存储了一个值,那么也要用一致的方式进行检索。
3>、不能重新初始化前面创建的NSNumber的值。
二、字符串对象
1、字符串对象
1>、介绍:Foundation框支持一个名为NSString的类,它可以用于处理字对象,NSString是由unichar字符组成。
2>、创建方式字符串:在字符串开关放置一个@字符
如:@”Programming is fun”
3>、创建字符串对象要求:需要添加 #import<Foundation/NSString.h>
4>、定义方式,如:NSString *str=@”Programming is fun”;
2、NSLog函数
1>、NSLog函数是用于输出的函数。
2>、NSLog格式字符%@不仅能显示NSString对象,而且可以显示其它对象。
3>、NSLog调用,如:NSLog(@”%@”,str);
4>、NSLog格式式字符%@可以显示数组、字典和集合的全部内容。还可以通过重载类继承的方法,显示你自己的对象。
3、可变对象与不可变对象
1>、不可变对象:创建字符串对象时,就创建了一个内容不可更改的对象。
2>、Lenght方法: 可用来对字符串中的字符进行计数。
3>、isEqualToString: 方法用检测两个字符串是否相等。
4>、uppercaseString: 方法将字符串转换成大写字符。
5>、lowercaseString: 方法将字符串转换成小写字符。
6>、substringFormIndex: 方法返回一个字符串,它从接收者的指定索引的字符开始,直到字符串结尾。
7>、substringWithRange: 方法接受一个范围,并返回指定范围的字符。
8>、rangeOfString: 方法在接收者中找到指定的字符串,则返回的范围精确地指定找到它的位置。如果没有找到这个字符串,则返回范围的location成员被设为NSNotFound。
如:subRange=[str rangeOfString:@”is fun”];
4、可变字符串
1>、介绍:NSMutableString类可以用来创建可以更改字符的字符串对象。因为该类是NSString类的子类,所以可以使用NSString类的所有方法。
2>、声明方式,如:NSMutableString *mstr;
3>、将mstr变量定义为一个变量,如:
Mstr=[NSMutableString stringWithString:str];
4>、insertSring:atIndex: 方法将指定的字符串插入接收者中,插入点从指定的索引开始。
5>、appendString: 方法将一个字符串插入另一字符串结尾。
6>、deleteCharactersInRange: 方法可以删除字符串中指定数目的字符。
7>、setString: 方法可用来直接设置可变字符串的内容。
8>、replaceCharactersInRange: 方法用另一个字符串替换这个字符串中的部分字符。
9>、replaceOccurrencesOfString:WithString:options:range: 方法用来执行搜索并全部替换。
5、所有对象去哪了
1>、所有由NSString和NSMutableString方法生成并返回的字符串对象,被创建者添加到自动释放池,将在系统释放池时全部释放。如果开发的程序创建了许多临时对象,则内存会累积起来,这时要采取不同的策略,在程序执行时释放内存,而不是在程序结尾释放。
2>、NSURL对象:url是一个NSURL对象,path是指明文件路径的NSSring对象。
三、数组对象
1、介绍:Foundation数组是有序的对象集合。一个数组中的元素都是一个特定类型,但是这是是必需的。数组对象分为可变数组对象和不可变数组对象:不可变数组是由NSArray类处理的,而可变数组是由NSMutableArray处理。后者是前者的子类。
2、使用要求:必须包含#import<Foundation/NSArray.h>
3、arrayWithObject: 方法用来创建使用一列对象作为元素的数组。
4、objectAtIndex: 方法用于提取数组对象中指定元素。
5、arrayWithCapactity: 方法分配NSMutableArray的素数。
6、addObject: 方法向数组的末尾添加一个对象。
四、词典对象
1、概念:dictionary是由键-对象对组成的数据集合。
2、简介:词典可以是固定的,也可以是可变的。可变词典中记录可动态的添加和删除。可基于特定的键对词典搜索,也可以枚举它们的内容。
3、使用要求:需要添加 #import<Foundation/NSDictionary.h>
4、可变词典
1>、声明方式,如:NSMutableDictionary *glossary;
2>、setObject:forKey: 方法将键-值添加到词典中。
3>、objectForKey: 方法检索给定键的值。
5、枚举词典
1>、概念:键从词典中依次被检索,没有特定顺序。
2>、检索方式,如:
for(NSString *key in glossary)
NSLog(@”%@%@”,key,[glossary objectForKey:key]);
注:词典中的键是单值的,尽管它们通常是字符串,但不可以是任何类型。
五、集合对象
1、概念:以数组、字典和集的形式使用成组的对象,set是一组单值对象集合,它可以是可变的,也可以是不可变的。
2、可执行操作:搜索、添加、删除集合中的成员(公用于可变集合),比较两个集合,计算两个集合的交集与并集等。
3、使用要求:需要添加 #import<Foundation/NSSet.h>
4、基本方法
1>、setWithObject: 使用一列对象创建新集合。
2>、isEqualToSet: 确定两个集合是否相等。
3>、addObject: 添加对象到集合中。
4>、removeObject: 从集合中删除对象。
5>、interset: 用于计算两个集合的交集。
6>、union: 用于计算两个集合的并集。