OC基础-Foundation——常用结构体 (NSRange 、NSPoint、NSsize、NSRect)
2014-11-21 14:24
483 查看
Oc为我们提供了四个结构体,定义的变量可以存在栈上和堆上。 分别是:范围:NSRange , 几体数据类型 : 点(NSPoint) 尺寸(NSsize) 区域(NSRect); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- <一> NSRange: 用来表示相关事物的范围。 结构体原形:typedefstruct _NSRange { NSUInteger location; NSUInteger length; }NSRange; NSRange:(用于存储单词或语句,在里面的位置) location:起始位置, length:元素个数。 NSRange,是结构体,不是类,定义的变量不需要加* 三种赋值方式: NSRange range; //c语言结构体变量的赋值的方法 range.location=17; range.length=4; NSLog(@"%lu %lu",range.location, range.length); //c语言结构体变量初始化的方法 NSRange range1={17,4}; NSLog(@"%lu %lu",range1.location, range1.length); //oc的赋值方法 //最常用 range=NSMakeRange(17,4); NSLog(@"%lu %lu",range1.location, range1.length); cocoa提供的一个快捷函数NSMakeRange(); 使用NSMakeRange()的好处是可以在任何能够使用函数的地方使用它,例如在方法调用中将其当成参数传递。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- <二>NSPoint 代带平面上的点 结构体原形: typedefstruct _NSPoint { float x; float y; }NSPoint; 三种赋值方式: NSPoint point; point.x=10; point.y=20; NSLog(@"%f,%f",point.x,point.y); NSPoint point1={10.3,20.6}; NSLog(@"%f,%f",point1.x,point1.y); point=NSMakePoint(10.5,11.3); NSLog(@"%f,%f",point.x,point.y); 注:x,y是值是float类型的。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- <三> NSSize 用来存储长度和宽度。尺寸。 结构体原形: typedef struct _NSSize { float width; float height; }NSSize; 三种赋值方式: NSSize size; size.width=15; size.height=20; NSLog(@"%f %f",size.width,size.height); NSSize size1={15,20}; NSLog(@"%f %f",size1.width,size1.height); size=NSMakeSize(20,30); NSLog(@"%f %f",size.width,size.height); -------------------------------------------------------------------------------------------------------------- <四> NSRect 用来表示区域。 结构体原形: typedef struct _NSRect { NSPoint origin; NSSize size; }NSRect; 三种赋值方式: NSRect rect; rect.origin.x=15; rect.origin.y=20; rect.size.width=8; rect.size.height=15; NSRect rect1={15,20,8,15}; rect =NSMakeRect(15,20,15,20); NSSize size=NSMakeSize(50,60); NSLog(@"%f %f ",size.width,size.height); NSRect rect=NSMakeRect(5.3,4.6, 20.5, 40.5); NSLog(@"%f %f %f %f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height); #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { 一般的CGPoint之类可以直接用,但是比较高级的函数需要加入CoreGraph框架 <img src="http://img.blog.csdn.net/20150428234421172?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFvamllMTAyMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> NSRange range=NSMakeRange(50, 60); NSString *rangeString=NSStringFromRange(range); NSLog(@"%@",rangeString); //NSPoint/CGPoing 是一样的 NSPoint point=NSMakePoint(0, 0); //CGPoint dd=CGPointMake(0, 0); NSString *pointString=NSStringFromPoint(point); NSLog(@"%@",pointString); //CGSize/NSSize是一样的 CGSize size=CGSizeMake(300, 200); //NSSize size1=NSMakeSize(300, 200); NSString *sizeString=NSStringFromSize(size); NSLog(@"%@",sizeString); //CGRect/NSRect是一样的 CGRect rect=CGRectMake(0,0, 80, 90); //NSRect rect1=NSMakeRect(0, 0, 50, 60); NSString *rectString=NSStringFromRect(rect); NSLog(@"%@",rectString); //表示的都是零 CGPointZero; CGSizeZero; CGRectZero; //判断是否相等 //使用这些函数的前提是添加CoreGraphics 框架 BOOL b= CGRectEqualToRect(CGRectMake(0, 0, 80, 80), CGRectMake(0, 0, 80, 80)); CGSizeEqualToSize(<#CGSize size1#>, <#CGSize size2#>); CGPointEqualToPoint(<#CGPoint point1#>, <#CGPoint point2#>); //判断左边是否包含右边的 CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45)); } return 0; }
相关文章推荐
- 【Foundation学习笔记】常用结构体--NSRange、NSPoint、NSSize、NSRect
- iOS开发——oc——founctation中常用结构体(NSRange、NSPoint\CGPoint、NSSize\CGSize、NSRect\CGRect)
- Foundation——常用结构体 (NSRange 、NSPoint、NSsize、NSRect)
- Objective——C Foundation——常用结构体 (NSSRange 、NSPoint、NSsize、NSRect)
- 黑马程序员-OC常见结构体NSRange、NSPoint、NSSize、NSRect
- 黑马程序员-----Foundation常用的结构体(NSRange,NSPoint,NSSize,NSRect)
- 黑马程序员08--Foundation--01--NSString、NSRange、NSPoint、NSSize、NSRect
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- 01-结构体NSRange、NSPoint、NSSize、NSRect、及NSString简介
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
- 【Foundation】16-NSRange、NSPoint、NSSize、NSRect知识点
- OC--Foundation-NSPoint,NSSize,NSRect
- 20120810-课堂笔记--FoundationKit,NSRange,NSPoint,NSSize,NSRect,可变对象
- NSRange,NSPoint,NSSize,NSRect(基础)
- Foundation框架: 1.常用结构体 - NSRange
- 黑马程序员——OC基础学习(六)---Foundation框架的常用类
- Objective-C基础笔记(7)Foundation中的常用结构体