Objective-C( Foundation框架 一 常见的结构体)
常见的结构体 (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框架 一 常见的结构体)相关推荐
- oc基础-foundation框架中的常用结构体
1.CGPoint/NSPoint :表示坐标点的 创建: CGPoint *cp=NSMakePoint(10,10); //x,y NSPonit *cp=CGPointMake(10,10); ...
- Android系统源码分析/多媒体框架/音频子系统/常用结构体分析-audio.h
audio_stream_type_t 定义音频流类型,主要是手机系统各类典型的音频流做出属性上的区分,举个例子:电话和媒体2种类型的音频不管从输出的设备(耳机.功放.还是蓝牙)都是存在明显的不同.把 ...
- c语言结构体菜单显示框架,请教c语言结构体嵌套问题。field `atItem' has incomplete type...
//菜单项结构体 typedef struct { BYTE aucItemName[20]; //菜单项的内容 WORD32 dwItem ...
- 【FFmpeg学习】FFmpeg常见的结构体
音视频播放的原理主要分为:解协议->解封装->解码->音视频同步->播放. 那 FFmpeg 的解码流程结构体也可以由以上流程进行分类: 解协议(http,rtsp,rtmp, ...
- IOS学习笔记6—Objective C—Foundation框架
2019独角兽企业重金招聘Python工程师标准>>> 原文:http://blog.csdn.net/tangren03/article/details/7747281 转载于:h ...
- linux socket结构,Linux C socket编程中几个常见的结构体定义
● sockaddr #include struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; ● in_addr_t #inclu ...
- [黑马IOS自学第十四篇]Foundation框架学习
框架:由许多类,方法,函数和文档按照一定逻辑组织起来的集合 不小心修改了系统的文件,引起的错误 #import<Foundation/Foundation.h>int main(intar ...
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- Nouveau源码分析(二):Nouveau结构体的基本框架
Nouveau源码分析(二) 在讨论Nouveau对Nvidia设备的初始化前,我准备先说一下Nouveau结构体的基本框架 Nouveau的很多结构体都可以看作是C++中的类,之间有很多相似的东西, ...
最新文章
- SAP 没有激活HUM功能照常可以使用Handling Unit
- This dependency was not found:import ‘element-plus/lib/theme-chalk/index.css‘;
- 东京奥运会的官网的最上面是广告栏
- Android AIDL使用介绍(1)基本使用
- c语言程序检测进程pid,C语言实现由PID获取进程名由进程名获取PID
- 【Bootstrap】 框架 栅格布局系统设计原理
- Vertex and Fragment Shader
- linux下安装Jira6.3
- buntu下shell脚本运行异常:bash和…
- 从获得字符串中获取数字
- 隐藏在计算机软硬件,隐匿在计算机软硬件背后的语言
- 修身齐家治国平天下的领导者自我管理哲学
- hotmail接收邮件服务器(pop),Microsoft微软邮箱 outlook、hotmail 打开pop和imap的方法
- CalBioreagents丨艾美捷丨ACTH N端单克隆抗体
- 程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结
- 全国计算机二级考试公共知识
- There is a problem with this Windows Installer package 卸载软件提示
- Python入门学习(五)
- 【bug记录】 Argument of type ‘AsyncThunkAction<void, string, {}>‘ is not assignable to parameter of type
- @敏捷组织从业者,开放敏捷架构O-AA™标准考试及认证项目重磅上线!
热门文章
- 自动化测试基础篇--Selenium浏览器操作
- 使用CMD命令修改Windows本地账户密码
- iteritems()与items()
- 扩展方法必须在非泛型静态类中定义
- Java 网络编程1
- **【ci框架】精通CodeIgniter框架
- JAVA编程经验汇总 (载)
- squid2.6加速WEB支持虚拟主机配置心得体会 .txt
- [置顶] 动软软代码生成器使用(127.0.0.1)无法看到 SQLServer2008 新附加数据库的 原因 以及 解决方案...
- C++中STL的一些用法的补充