Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect

1   NSRange

NSRange 的原型为

typedef struct _NSRange {
     NSUInteger location;
     NSUInteger length;
     } NSRange;

NSMakeRange的函数

NS_INLINEz是内联函数

     typedef NSRange *NSRangePointer;

     NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
     NSRange r;
     r.location = loc;
     r.length = len;
     return r;
     }

使用方法

 //NSRange表示的是范围
    NSRange  range;
    range.location = 18;
    range.length = 34;

    NSLog(@"location is %zi",range.location);
    NSLog(@"length is %zi",range.length);

    //快速创建
    range = NSMakeRange(8, 10);
    NSLog(@"location is %zi",range.location);
    NSLog(@"length is %zi",range.length);

    //NSStringFromRange将上面的结构体转化成字符串类型,打印出来

    NSString* str1 = NSStringFromRange(range);

    //%@是一个OC对象,range代表的是一个结构体,str是一个OC对象
    NSLog(@"rang is %@",str1);

2  NSPoint

NSPoint的原型

struct CGPoint {
     CGFloat x;
     CGFloat y;
     };

NSMakePoint函数

NS_INLINE NSPoint NSMakePoint(CGFloat x, CGFloat y) {
     NSPoint p;
     p.x = x;
     p.y = y;
     return p;
     }

CGPointMake函数

CGPointMake(CGFloat x, CGFloat y)
     {
     CGPoint p; p.x = x; p.y = y; return p;
     }

使用方法

//NSPoint指的是位置
    NSPoint point;

    //给结构体里面的点进行赋值
    point.x = 10;
    point.y = 10;

    //快速创建点
    point = NSMakePoint(10, 18);

    //常见的是CGPointMake创建点的函数
    point = CGPointMake(29, 78);
    NSString* str2 = NSStringFromPoint(point);
    NSLog(@"point is %@",str2);

3  CGSize

CGSize的原型

struct CGSize {
     CGFloat width;
     CGFloat height;
     };

NSMakeSize函数

NS_INLINE NSSize NSMakeSize(CGFloat w, CGFloat h) {
     NSSize s;
     s.width = w;
     s.height = h;
     return s;
     }

CGSizeMake函数

CGSizeMake(CGFloat width, CGFloat height)
     {
     CGSize size; size.width = width; size.height = height; return size;
     }

使用方法

 NSSize size;

    size.width = 100;
    size.height = 12;
    size = NSMakeSize(12, 12);
    size = CGSizeMake(11, 11);

    NSString* str3 = NSStringFromSize(size);
    NSLog(@"%@",str3);

4 CGRect

CGRect的原型

struct CGRect {
     CGPoint origin;
     CGSize size;
     };

CGRectMake的函数

CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
     {
     CGRect rect;
     rect.origin.x = x; rect.origin.y = y;
     rect.size.width = width; rect.size.height = height;
     return rect;
     }

NSMakeRect函数

NS_INLINE NSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) {
     NSRect r;
     r.origin.x = x;
     r.origin.y = y;
     r.size.width = w;
     r.size.height = h;
     return r;
     }

使用方法

 //既包含了尺寸大小和位置
    NSRect rect;
    rect.origin.x = 12;
    rect.origin.y = 14;
    rect.size.width = 12;
    rect.size.height = 15;

    //快速创建方法
    rect = CGRectMake(12, 12, 12, 12);
    rect = NSMakeRect(11, 11, 11, 11);

    //转化成字符串打印出来
    NSString* str5 = NSStringFromRect(rect);
    NSLog(@"rect is %@",str5);

Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect

时间: 2024-10-07 11:04:03

Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect的相关文章

Objective-C中经常使用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect

1   NSRange NSRange 的原型为 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSMakeRange的函数 NS_INLINEz是内联函数 typedef NSRange *NSRangePointer; NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) { NSRange r; r.locatio

Foundation 框架中常用的结构体详解

Foundation 框架包含了很多开发常用的数据类型: Foundation中包含的数据类型: 结构体 枚举 类 要想使用 Foundation 中的数据类型,只要包含主头文件即可. #impot <Foundation/Foundation.h> 结构体: 我们常用的结构体有:NSRange.NSPoint (CGPint ).NSSize(CGSize).NSRect(CGRect) NSRange:是用来表示位置和范围的. 本质是: 1 typedef struct _NSRange

Foundation-01_结构体NSRange

Foundation框架是其他所有IOS框架的基础 Foundation中常用的结构体: NSRange (location.length) NSPoint\CGPoint NSSize\CGSize NSRect\CGRect NSRange: 有两个成员:location(位置)和length(长度) //下面这两种方法不常用 NSRange r1 = {2,4}; NSRange  r2 = {.location=2 , .length=4}; //常用的是下面这个方法: NSRange

IOS-Foundation 里常用的结构体:

在Foundation中定义了很多常用结构体类型来简化我们的日常开发 NSRange(location length)用来表示范围,分多种情况 NSPoint \ CGPoint(开发中常用后者) NSSize \ CGSize NSRect \ CGRect (CGPint CGSize) NSRange原型 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; 这是 NSRange 结构体的内

MFC中的NMHDR结构体

建立spin控件,创建UDN_DELTAPOS一个消息函数后: void CSpinDlg::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) { NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR; // TODO: Add your control notification handler code here *pResult = 0; } 问题1:参数NMHDR* pNMHDR, LRESULT* pResul

黑马程序员_IOS开发_Objective-C学习笔记_Foundation框架常用的结构体

1.Foundation框架简介 1.1使用Foundation可以: *创建和管理集合,比如数组和字典 *访问存储在应用程序里的图片和其它资源 *创建和管理字符串 *提交和接收通知 *创建日期和时间对象 *自动发现IP网络上的设备 *操作URL流 *执行异步代码 注意:Foundation框架是默认导入的 所以不用刻意去导入 是必备的框架之一 1.2Foundation框架中一些经常接触到的结构体 由于Objective-C程序中 对象的结构体成员变量中的元素 不能通过对象直接来访问 所以我们

C中多变的结构体 struct typedef

 这几天看代码,看到几种类型的结构体,结构声明如下: struct    book{ string name; int price; int num; }; 此种结构定义结构变量的格式如下: struct    book      student; struct      book{ string name; int price; int num; }student; 此种形式代表声明结构的过程和定义结构变量的过程被合并成一步 typedef    struct  (book){   //b

ffmpeg中对AVInputFormat结构体中函数的调用

http://blog.csdn.net/junllee/article/details/7722605 opt_input_file()->      avformat_open_input()->             init_input()->                   av_probe_input_format()->                          av_probe_input_format2()->                 

OC中常见的结构体,以及NSNumber、NSValue、NSDate的使用

常见的结构体 1 NSPoint和CGPoint 2 NSSize和CGSize 3 NSRect 和 CGRect NSPoint和CGPoint的使用 1 NSPoint和CGPoint是同义的 2 typedef CGPoint NSPoint; 3 CGPoint的定义 4 struct CGPoint{ 5 CGFloat x; 6 CGFloat y; 7 } 8 9 typedef struct CGPoint CGPoint; 10 typedef double CGFloat;