zoukankan      html  css  js  c++  java
  • 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; 
    };  
  • 相关阅读:
    jqGrid 属性、事件全集
    把app(apk和ipa文件)安装包放在服务器上供用户下方法
    c#中如何获取本机MAC地址、IP地址、硬盘ID、CPU序列号等系统信息
    Visual Studio Installer打包安装项目VS2015
    小白入门服务器压测
    PHP正则表达式快速查找
    PHP创建创建资源流上下文实现携带cookie访问
    js中文转Unicode编码与解码
    PHP的fpm配置学习笔记
    微信公众号PHP生成二维码海报的几个小扩展
  • 原文地址:https://www.cnblogs.com/lxlx1798/p/9303697.html
Copyright © 2011-2022 走看看