——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
Foundation框架介绍
框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易在OS X下的Mac操作系统中大约
有80个框架为所有程序开发奠定基础的框架称为Foundation框架
Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字典和集合,其他功能包括处理日期和时
间、内存管理、处理文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形)
Foundation框架的作用
Foundation框架在开发中常用的数据类型有:
结构体
枚举
类
NSRange
比如NSRange r = {2, 6}; 第一个数是起始位置,第二个数是长度。
#import <Foundation/Foundation.h>
int main()
{
NSString *str = @"china";
NSRange range = [str rangeOfString:@"in"];
NSLog(@"range.location = %ld, range.length = %ld", range.location, range.length);
return 0;
}
利用NSRange结构体获得了一个字符串在另一个字符串中的起始位置和长度。运行结果是:
range.location = 2, range.length = 2
NSPoint
它表示一个点。常用的创建方式是:NSPoint point = NSMakePoint(10, 15);
或者NSPoint point = CGPointMake(10,15);
NSSize:
它表示大小,它的两个参数分别表示x轴和y轴上的一个范围,常用的创建NSSize变量的方式是:NSSize size = NSMakeSize(8, 13); 或者
NSSize size = CGSizeMake(8, 13);。
NSRect
它表示一个矩形,它有四个参数前两个表示一个点,代表这个矩形的起始位置,后两个表示它的长和宽。
NSRect就是NSPoint和NSSize的组合。
通常我们这样创建一个NSRect变量:NSRect rect = NSMakeRect(0, 0, 5, 9); 或者NSRect rect = CGRectMake(0, 0, 5, 9);
#import <Foundation/Foundation.h>
int main()
{
NSPoint p = NSMakePoint(1, 2);
NSSize s = NSMakeSize(8, 4);
NSRect r = {p, s};
NSLog(NSStringFromRect(r)); //输出变量r的值
NSLog(@"r.origin.x = %.2f, r.origin.y = %.2f, r.size.width = %.2f, r.size.height = %.2f",r.origin.x, r.origin.y, r.size.width, r.size.height);
return 0;
}
简单展示了NSPoint、NSSize和NSRect。运行结果是:
{{1, 2}, {8, 4}}
r.origin.x = 1.00, r.origin.y = 2.00, r.size.width = 8.00, r.size.height = 4.00
字符串
字符串类分为两种:一种是不可变字符串(NSString)另一种是可变字符串(NSMutableString),可变字符串是不可变字符串的子类。
不可变字符串:
初始化字符串:NSString *str=[[NSString alloc] initWithString:@"Objective-C string"];
快速创建字符串:NSString *str=@"OC string";
带格式转换的字符串:NSString *str=[[NSString alloc] initWithFormat:@"age is %d,height is %.2f",19,1.72f];
上面是使用对象方法创建字符串的方式,也可以用类方法创建:
初始化字符串:NSString *str = [NSString stringWithString:@"liyi"];
或者:NSString *str = [NSString stringWithFormat:@"age is %d", 20];
可变字符串
可变字符串和不可变字符串的创建方法一样,只不过换成了NSMutableString类。
#import <Foundation/Foundation.h>
int main()
{
NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"]; //创建一个可变字符串
[s1 appendString:@" 11 12"]; // 拼接内容到s1的后面
NSRange range = [s1 rangeOfString:@"is"]; // 获取“is”的范围
[s1 deleteCharactersInRange:range]; //删除“is”
NSString *s2 = [NSString stringWithFormat:@"age is 10"]; //创建一个不可变字符串
NSString *s3 = [s2 stringByAppendingString:@" 11 12"]; //如果要在s2后面接字符串的话会产生一个新的字符串
NSLog(@"s1=%@, s2=%@", s1, s2);
return 0;
}