Foundation框架的结构体:
首先介绍一下结构体
void test(){
//定义Date这种结构体类型
struct Date{
int year;
int month;
int day;
}
//定义结构体变量
struct Date d = {2013, 07, 27};
d.day = 6;
}
void test1(){
typedef struct Date {
int year;
int month;
int day;
} MyDate;
//MyDate就是这个结构体
MyDate d = {2013, 07, 27};
}
下面介绍Foundation框架常用的结构体
NSRange :
这个结构体表示某个事物的范围,通常是字符串里的字符串范围,或者集合里的元素范围
源码是:
typedef struct _NSRange {
NSUInteger location; //起始位置
NSUInteger length; //元素个数
} NSRange;
三种方式创建一个NSRange变量
方式一:
NSRange reange;
reange.location = 7;
range.length = 3;
方式二:
NSRange range = {3, 7}
或者 NSRange range = {.location=7, .length = 3};
方式三:
Foundation框架提供的一个快捷函数NSMakeRange
NSRange range = NSMakeRange(7,3);
使用方法:
void range() {
NSRange range = NSMakeRange(8, 10); //结构体不是对象
NSLog(@"location:%zi", range.location); //$z 无符号
//把range转换成字符串
NSString * str = NSStringFromRange(range);
NSLog(@"%@", str); //打印: {8, 10}
}
NSPoint:
void point(){
NSPoint p; //也可以写成CGPoint
//方式一
p.x = 1;
p.y = 10;
//方式二
p = NSMakePoint(1,9);
//或者p = CGPointMake(1, 9); //(最常见的方式)
//把NSPoint结构体编程字符串
NSString *str = NSStringFromPoint(p);
NSLog(@"%@", str); //打印 {1, 10};
}
NSSize:
void size() {
NSSize size ;
//方式一
size.width = 100;
size.height = 90;
//方式二
size = NSMakeSize(100,90);
//或者size = CGSizeMake(100, 90);
NSString * str = NSStringFromSize(size);
NSLog(@"%@", str); //打印 {100, 90}
}
NSRect:
包含位置(origin)、尺寸(size)
void rect() {
NSRect rect ;
rect.origin.x = 10;
rect.origin.y = 11; //不允许使用 rect.origin = {10, 11}这种方式
rect.size.width = 100;
rect.size.height = 90;
//也可以使用下面方式赋值
rect = CGMakeRect(10, 11, 100, 90);
NSString * str = NSStringFromRect(rect);
NSLog(@"%@", str); //打印{{10, 11},{100, 90}}
}