什么是Objective C中的"CG_INLINE CGRect"定义?

Fir*_*ous 0 structure objective-c parameter-passing ios cgrect

Objective C中调用的以下结构是什么,

CG_INLINE CGRect
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
  CGRect rect;
  rect.origin.x = x; rect.origin.y = y;
  rect.size.width = width; rect.size.height = height;
  return rect;
}
Run Code Online (Sandbox Code Playgroud)

我想创建自己的定义来创建一个包含我传递的多个参数的对象.目前我在一个类中使用静态方法,该方法将获取多个参数并返回一个对象.但是CGRectMake的这种语法是我可以使用的完美解决方案.Objective C语法中实际调用的结构是什么?

Bol*_*ock 6

CGRectMake()是一个功能.函数是C语言特性,不是Objective-C独有的.因此,它们在Objective-C中没有特殊名称.它们被称为C函数.

如果你问这个看似神秘的语法:

CG_INLINE CGRect
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
Run Code Online (Sandbox Code Playgroud)
  1. CG_INLINE是一个特殊的标记,只是将函数声明为内联.您可以CG_INLINE在此问题中找到相关说明:

    CG_INLINE做什么?

  2. CGRect是返回类型.接下来的换行只是空白; C语言中的一种常见的代码格式约定是在函数定义中的返回类型之后断行.

  3. CGRectMake 是函数名称.

  4. 接下来的其余部分是它的参数列表和函数体.

如果要创建函数,可以将其定义放在.m文件中,并在文件中使用相应的前向声明.h.