在iOS开发中所有框架中Foundation框架是最基础的框架,Foundation框架里面包含了常用的类和数据类型。
使用Foundation框架只要包含它的主头文件<Foundation/Foundation.h>即可,主头文件里面包含了框架中所有内容的头文件。
Foundation框架中常用的结构体:NSRange、NSPoint\CGPoint、NSSize\CGSize、NSRect\CGRect
使用CGPoint、 CGSize、CGRect需要包含另一个框架,结构体常用函数是在CoreGraphics.framework框架下面,因此需要先添加框架。
struct Date { int year; int month; int day; }; struct Date date = {2015,5,2}; struct Date date2 = {.year=2015, .day=10, .month=4};
此结构体表示的是字符位置和长度。
typedef struct _NSRange { NSUInteger location; // 位置 NSUInteger length; // 长度 } NSRange; // NSUInteger 类型为无符号类型,可以简单理解为表示正整数的类型,在NSLog输出时用ld
查找NSString类对象中某些字符在整个类对象中的NSRange。
NSString *str = @"I like oc"; // NSString类的分类已经对这种需求做了实现 因此可以直接调用类方法来实现 NSRange range = [str rangeOfString:@"like"]; // 打印的NSRange结构体中的变量由于都是NSUInteger类型 因此在输出时用ld NSLog(@"location = %ld, length = %ld",range.location,rang.length);
如果没有找到要查找的值NSRange中的length = 0, location = NSNotFound,其中NSNotFound如果以NSLog(@"%d",NSNotFound); 输出一长串 数字;而如果以 NSLog(@"%d",NSNotFound); 输出的就是 -1。
此结构体表示的是点坐标。
用法举例:
CGPoint point = NSMakePoint(20, 20); NSPoint point2 = CGPointMake(20, 20);
此结构体表示的是尺寸。
用法举例:
CGSize size = NSMakeSize(20, 40); NSSize size2 = CGSizeMake(40, 20);
此结构体表示的是位置和尺寸。
用法举例:
CGRect rect = CGRectMake(20, 20, 50, 100); NSRect rect2 = NSMakeRect(20, 20, 50, 100); CGRectZero == CGRectMake(0,0,0,0); CGSizeZero == CGSizeMake(0,0); CGPointZero == CGPointMake(0,0); CGRect rect = {{20,50},{50,100}}; NSPoint point = CGPointMake(20, 20); NSSize size = CGSizeMake(50, 100); CGRect rect2 = {point,size}; CGRect rect3 = {CGPointZero,CGSizeMake(50, 100)};