常见的结构体 (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 = 2;range.length = 3;range= (NSRange){3, 5};NSRange r = NSMakeRange(2, 4);

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

CGPoint 是NSPoint的一个别名

struct CGPoint {CGFloat x; 点的x方向CGFloat y; 点的y方向
};

用法:
    // 表示二维平面的一个点CGPoint p1 = NSMakePoint(10 ,14);NSPoint p2 = CGPointMake(11,20);CGPoint c1 = { 10, 12};

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

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

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

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

    CGRect r = {{0, 1},{20, 30}};// OC特有方式CGRect r1 = CGRectMake(1, 2, 10, 60);NSRect r2 = NSMakeRect(2, 5, 80, 90);// 打印方式NSLog(@"r1 = %@", NSStringFromRect(r1));

 

转载于:https://www.cnblogs.com/1023843587qq/p/4782085.html

Objective-C( Foundation框架 一 常见的结构体)相关推荐

  1. oc基础-foundation框架中的常用结构体

    1.CGPoint/NSPoint :表示坐标点的 创建: CGPoint *cp=NSMakePoint(10,10); //x,y NSPonit *cp=CGPointMake(10,10); ...

  2. Android系统源码分析/多媒体框架/音频子系统/常用结构体分析-audio.h

    audio_stream_type_t 定义音频流类型,主要是手机系统各类典型的音频流做出属性上的区分,举个例子:电话和媒体2种类型的音频不管从输出的设备(耳机.功放.还是蓝牙)都是存在明显的不同.把 ...

  3. c语言结构体菜单显示框架,请教c语言结构体嵌套问题。field `atItem' has incomplete type...

    //菜单项结构体 typedef struct { BYTE                aucItemName[20];   //菜单项的内容 WORD32              dwItem ...

  4. 【FFmpeg学习】FFmpeg常见的结构体

    音视频播放的原理主要分为:解协议->解封装->解码->音视频同步->播放. 那 FFmpeg 的解码流程结构体也可以由以上流程进行分类: 解协议(http,rtsp,rtmp, ...

  5. IOS学习笔记6—Objective C—Foundation框架

    2019独角兽企业重金招聘Python工程师标准>>> 原文:http://blog.csdn.net/tangren03/article/details/7747281 转载于:h ...

  6. linux socket结构,Linux C socket编程中几个常见的结构体定义

    ● sockaddr #include struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; ● in_addr_t #inclu ...

  7. [黑马IOS自学第十四篇]Foundation框架学习

    框架:由许多类,方法,函数和文档按照一定逻辑组织起来的集合 不小心修改了系统的文件,引起的错误 #import<Foundation/Foundation.h>int main(intar ...

  8. FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  9. Nouveau源码分析(二):Nouveau结构体的基本框架

    Nouveau源码分析(二) 在讨论Nouveau对Nvidia设备的初始化前,我准备先说一下Nouveau结构体的基本框架 Nouveau的很多结构体都可以看作是C++中的类,之间有很多相似的东西, ...

最新文章

  1. SAP 没有激活HUM功能照常可以使用Handling Unit
  2. This dependency was not found:import ‘element-plus/lib/theme-chalk/index.css‘;
  3. 东京奥运会的官网的最上面是广告栏
  4. Android AIDL使用介绍(1)基本使用
  5. c语言程序检测进程pid,C语言实现由PID获取进程名由进程名获取PID
  6. 【Bootstrap】 框架 栅格布局系统设计原理
  7. Vertex and Fragment Shader
  8. linux下安装Jira6.3
  9. buntu下shell脚本运行异常:bash和…
  10. 从获得字符串中获取数字
  11. 隐藏在计算机软硬件,隐匿在计算机软硬件背后的语言
  12. 修身齐家治国平天下的领导者自我管理哲学
  13. hotmail接收邮件服务器(pop),Microsoft微软邮箱 outlook、hotmail 打开pop和imap的方法
  14. CalBioreagents丨艾美捷丨ACTH N端单克隆抗体
  15. 程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结
  16. 全国计算机二级考试公共知识
  17. There is a problem with this Windows Installer package 卸载软件提示
  18. Python入门学习(五)
  19. 【bug记录】 Argument of type ‘AsyncThunkAction<void, string, {}>‘ is not assignable to parameter of type
  20. @敏捷组织从业者,开放敏捷架构O-AA™标准考试及认证项目重磅上线!

热门文章

  1. 自动化测试基础篇--Selenium浏览器操作
  2. 使用CMD命令修改Windows本地账户密码
  3. iteritems()与items()
  4. 扩展方法必须在非泛型静态类中定义
  5. Java 网络编程1
  6. **【ci框架】精通CodeIgniter框架
  7. JAVA编程经验汇总 (载)
  8. squid2.6加速WEB支持虚拟主机配置心得体会 .txt
  9. [置顶] 动软软代码生成器使用(127.0.0.1)无法看到 SQLServer2008 新附加数据库的 原因 以及 解决方案...
  10. C++中STL的一些用法的补充