iOS自定义结构体
一、提要
通过以官方的CGSize为例,自定义Objective-C中的结构体,并使用。
二、CGSize
1、系统定义的CGSize结构体
struct CGSize {
CGFloat width;
CGFloat height;
};
注释:
结构体的自定义
struct 结构体名{
类型名 成员名1;
类型名 成员名2;
... ...
类型名 成员名n;
};
typedef struct CG_BOXABLE CGSize CGSize;
注释:
使用typedef struct CG_BOXABLE CGSize CGSize给结构体定义别名
2、CGSizeMake 结构赋值方法
CG_INLINE CGSize CGSizeMake(CGFloat width, CGFloat height)
{
CGSize size;
size.width = width; size.height = height;
return size;
}
注释:
* 这里CG_INLINE是一个宏:#define CG_INLINE static inline,这是系统的一个宏,如果你不用这个宏,可以直接写成static inline CGSize CGSizeMake(CGFloat width, CGFloat height)。
* inline 内联函数: 即在编译的时候将函数体替换函数调用,从而不需要将parameter,return address进行push/pop stack的操作,从而加速app的运行,然而,会增加二进制文件的大小。
三、自定义结构体
以自定义一个九宫格行列数为例
struct JGGRowListNum {
CGFloat row;
CGFloat list;
};
typedef struct JGGRowListNum JGGRowListNum;
CG_INLINE JGGRowListNum JGGRowListNumMake (CGFloat row, CGFloat list)
{
JGGRowListNum jGGRowListNum;
jGGRowListNum.row = row;
jGGRowListNum.list = left;
return jGGRowListNum;
};
iOS自定义结构体的更多相关文章
- typedef和自定义结构体类型
在自定义结构体类型时会用到typedef关键字.大家都知道typedef是取别名的意思,在C语言中跟它容易混淆的有const,#define等,其区别不在本篇文章讨论之列. /*定义单链表结点类型*/ ...
- qsettings 保存自定义结构体(QVariant与自定义结构体相互转化)
参考博文:QVariant与自定义数据类型转换的方法. 这里摘取其关键内容: 1.将自定义数据类型使用Q_DECLARE_METATYPE宏进行声明,便于编译器识别. 2.在插入对象的时候,声明QVa ...
- Qt--信号槽传递自定义结构体参数
自定义结构体参数的信号槽连接 (1) 对于自定义的结构体参数,信号槽无法识别参数,导致信号槽连接不起作用.所以需要注册结构体参数.在结构体中声明结束的地方加上结构体注册. struct DealDet ...
- Solidity的自定义结构体深入详解
一.结构体定义 结构体,Solidity中的自定义类型.我们可以使用Solidity的关键字struct来进行自定义.结构体内可以包含字符串,整型等基本数据类型,以及数组,映射,结构体等复杂类型.数组 ...
- 用set、map等存储自定义结构体时容器内部判别各元素是否相同的注意事项
STL作为通用模板极大地方便了C++使用者的编程,因为它可以存储任意数据类型的元素 如果我们想用set与map来存储自定义结构体时,如下 struct pp { double xx; double y ...
- gin中绑定表单数据至自定义结构体
package main import "github.com/gin-gonic/gin" type StructA struct { FieldA string `form:& ...
- QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数
前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 #include <QtCo ...
- [UE4]自定义结构体、类、数据表
自定义数据表: #pragma once #include "CoreMinimal.h" #include "Engine/UserDefinedStruct.h&qu ...
- 再谈:自定义结构体的对齐问题之__attribute__ ((packed))方法【转】
转自:https://blog.csdn.net/ipromiseu/article/details/5955295 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.c ...
随机推荐
- Source Insight 4.0常用设置
本文以Source Insight 4.00.0086版本为例讲解常用设置. 1.Source Insight简介 Source Insight是一个面向软件开发的代码编辑器和浏览器,它拥有内置的对C ...
- mac下使用apktool反编译
Mac OS X: Download Mac wrapper script (Right click, Save Link As apktool) Download apktool-2 (find n ...
- dom4j string转为xml
/**XML转字符串 */ Document document = new SAXReader().read(new File("E:test.xml"));; String t ...
- Java知多少(97)绘图模式概述
绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色.例如,后绘制的覆盖早先绘制的:或者后绘制与早先绘制的两种颜色按某种规则混合.主要有正常模式和异或模式两种:正常模式是后绘制的图 ...
- 关于Unity中NGUI的3D角色血条的实现
首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HU ...
- 关于枚举,enum、Enum、EnumSet、RegularEnumSet、JumboEnumSet
Apache Commons Lang. 在版本3中,enum相关的工具就留下EnumUtils. 首先, 所有enum,都默认实现了抽象类 java.lang.Enum .所以,所有enum都具备E ...
- MSP MCU I2C入门指南
这是一份介绍性指南,指导你如何用超低功耗MSP微控制器 (MCU) 开始一个与I2C通信有关的项目: 简介 I2C(或称为I2C,集成电路总线)是一种两线制通信形式,主要用来在短距离.电路板间的应用中 ...
- 面试Spring之bean的生命周期
找工作的时候有些人会被问道Spring中Bean的生命周期,其实也就是考察一下对Spring是否熟悉,工作中很少用到其中的内容,那我们简单看一下. 在说明前可以思考一下Servlet的生命周期:实例化 ...
- 设计模式-行为型模式,python访问者模式
访问者模式 在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法.通过这种方式,元素的执行算法可以随着访问者改变而改变.这种类型的设计模式属于行为型模式. ...
- MySQL 去除字段中的换行和回车符
今天csv 导入关键词的时候遇到问题 字段结束会有 回车符号 解决方法: ), ),''); char(10): 换行符 char(13): 回车符