常见的结构体 (NSPoint,CGPoint)、(NSRange,CGRange)、(NSSize,CGSize)

苹果官方推荐使用CG开头的结构体

NSRange是Foundation框架中常见的结构体它的定义如下:

typedef struct _NSRange

{

  // 范围的起始位置

  NSUInteger location;

  // 范围的长度

  NSUInteger length

}

NSUInteger的定义:

typedef unsigned int NSInteger;

typedef unsigned long NSUInteger;

NSRange创建的几种方式

    NSRange range;
range.location = ;
range.length = ; range= (NSRange){, }; NSRange r = NSMakeRange(, );

CGPoint 和 NSPoint :用来表示二维平面的一个点

CGPoint 是NSPoint的一个别名

struct CGPoint {
CGFloat x; 点的x方向
CGFloat y; 点的y方向
}; 用法:
  // 表示二维平面的一个点
CGPoint p1 = NSMakePoint( ,);
NSPoint p2 = CGPointMake(,); CGPoint c1 = { , };

CGSize 和 NSSize:用来表示平面的面积

struct CGSize {
CGFloat width; 宽
CGFloat height; 高
};
    CGSize s1;
s1.width = ;
s1.height = ; // OC中特有的方式
CGSize s2 = CGSizeMake(, );

CGRect  和 NSRect:表示在平面上左上角是某个点的矩形区域

struct CGRect {
var origin: CGPoint // 表示矩形左上角的点
var size: CGSize // 表示矩形的大小
init()
init(origin origin: CGPoint, size size: CGSize)
}
    CGRect r = {{, },{, }};

    // OC特有方式
CGRect r1 = CGRectMake(, , , );
NSRect r2 = NSMakeRect(, , , ); // 打印方式
NSLog(@"r1 = %@", NSStringFromRect(r1));
 

Objective-C( Foundation框架 一 常见的结构体)的更多相关文章

  1. iOS Foundation框架简介 -1.常用结构体的用法和输出

    1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...

  2. object-c 框架之经常使用结构体

    Foundation 框架定义经常使用结构体.结构体採用object-c 定义:经常使用NSSRange,NSPoint.NSSize,NSRect等 一.NSRange 创建范围结构体. 方法:NS ...

  3. Objective - c Foundation 框架详解2

    Objective - c  Foundation 框架详解2 Collection Agency Cocoa provides a number of collection classes such ...

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

    常见的结构体 NSPoint和CGPoint NSSize和CGSize NSRect 和 CGRect NSPoint和CGPoint的使用 NSPoint和CGPoint是同义的 typedef ...

  5. Foudation框架之一些常用结构体和常用类

    表示范围作用的结构体:NSRange:       有三种方式创建新的NSRange: 1.NSRange range:            range.location = 17;         ...

  6. linux驱动开发( 五) 字符设备驱动框架的填充file_operations结构体中的操作函数(read write llseek unlocked_ioctl)

    例子就直接使用宋宝华的书上例子. /* * a simple char device driver: globalmem without mutex * * Copyright (C) 2014 Ba ...

  7. 13.Object-C--浅谈Foundation框架常用的结构体

    ------- android培训.iOS培训.期待与您交流! ---------- 昨天学习了Foundation框架中常用的结构体,下面我简单的总结一下,如果错误麻烦请留言指正,谢谢! Found ...

  8. iOS Foundation框架 -1.常用结构体的用法和输出

    1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...

  9. OC 知识:Foundation 框架及相关类详尽总结

    本文用来介绍Foundation框架的相关知识,以及Foundation框架所提供类的相关知识总结. 1. 框架介绍 框架是由很多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使开发程序变得更加 ...

随机推荐

  1. SQL-乐观锁,悲观锁之于并发

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...

  2. leetcode 223

    题目描述: Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is def ...

  3. install MCR in silent mode linux server

    ./install -mode silent -agreeToLicense yes -destinationFolder /home/yanzhh/wq/Programs/MCR export LD ...

  4. zjuoj 3608 Signal Detection

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3608 Signal Detection Time Limit: 2 Sec ...

  5. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

  6. innerHTML

    对于innerHTML 属性,几乎所有的元素都有innerHTML属性,它是一个字符串,用来设置或获取位于对象起始和结束标签内的HTML.(获取HTML当前标签的起始和结束里面的内容) 下面的例子返回 ...

  7. mongo基本语句

    批量更新 db.test.updateMany({name:'test'},{$set:{value:1}}) 单更新 db.test.update({name:'test'},{$set:{valu ...

  8. 爬虫6:多页面增量Java爬虫-sina主页

    之前写过很多单页面python爬虫,感觉python还是很好用的,这里用java总结一个多页面的爬虫,迭代爬取种子页面的所有链接的页面,全部保存在tmp路径下. 1 序言 实现这个爬虫需要两个数据结构 ...

  9. UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 47: invalid continuation byte

  10. php之XML转数组函数的方法

    <?/** * xml2array() will convert the given XML text to an array in the XML structure. * Link: htt ...