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; 
};  

转载于:https://www.cnblogs.com/lxlx1798/p/9303697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值