您的位置:首页 > 其它

Foundation框架之结构体初识。

2014-07-25 22:00 176 查看
Foundation框架之结构体

在Foundation中的结构体包括NSRange、NSpoint、NSSize、NSRect。
NSRange在官方的定义是:
typedef struct _NSRange {

NSUIntegerlocation;

NSUIntegerlength;
} NSRange;
NSRange结构体表示的是范围。在NSRange中包括了location、和length。其中location表示是范围下标的开始,length表示的是范围的长度(即从location开始读取length长度的字符).如:
NSString *str=@”I love oc” 如何找到love的范围。

Location=2; NSRanger={2,4} // 不用,可读性差
Length=4; NSRanger1={.location=2,.length=4}; //不用
可用自带函数。NSRanger2=NSMakeRange(2,4);
// 查找某个字符串在str中的范围。如果找不到。 Length=0;location=NSNotFound;
NSString=@“I love oc”
//查找love在字符串中的范围。
NSRange range=[str rangeOfString:@”love”];

//NSLog(@"%@", range); 错误的做法,%@代表着OC对象
//1.输出location和length
NSLog(@”loc=%ld,length=%ld”,range.location,range.length);
//2.下面这种方式也可以输出NSRange
// NSString *str = NSStringFromRange(range);
//NSLog(@"%@", str);

NSpoint\CGPoint
在苹果的官方文档中定义typedefCGPoint NSPoint;即NSpoint就是CGPoint,struct CGPoint {
CGFloat x;
CGFloat y;
};其中CGfloat(即double)x,CGfloat y
CGPoint的初始化有以下方式:
CGPoint p; //最初的初始化。
p.x = 1;
p.y = 10;
CGPoint p1=NSMakePoint(10,10); //第二种方式
CGPoint p1=CGPoiontMake(20,20); //开发中常用这种
NSpoint\CGPoint表示的是点的位置,这个结构体主要用在ios的移动客户端开发。可以表示某个控件的位置
NSString *str = NSStringFromPoint(p);
NSLog(@"%@", str); //输出点的x,y

NSSize\CGSize(可以表示一个UI元素的尺寸)长(height)、宽(width)。
structCGSize {
CGFloat width;
CGFloat height;
};
typedefstruct CGSize CGSize;
初始化可以有以下方式:
1. CGSize size; //NSSize size;
size.width = 100;
size.height = 90;
2. NSSize size=NSMakeSize(100,50);//CGSizeMake(100,50);
NSString *str = NSStringFromSize(size); //输出size。
NSLog(@"%@", str);

NSRect\CGRect:
CGRect结构在屏幕上定义了一个矩形,拥有元素的位置和尺寸 ,
structCGRect {
CGPoint origin;
CGSize size;
};
typedefstruct CGRect CGRect;
CGRectr1=CGRectMake(0,0,100,50); //第一种赋值方式
CGRect r1={CGPointZero,CGSizeMake(100,90)}; //第二种赋值方式
NSString *str = NSStringFromRect(r1); //转换成字符串输出
NSLog(@"%@", str);

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: