CGRectMake(或其他Make函数)究竟做了什么
What exactly does CGRectMake (or other Make functions) do?
我希望实现一种类似于Apple对CGRectMake()
及其所有其他~Type~Make()
函数所做的事情的模式。CGRectMake的代码是什么?我了解它的作用,但更具体地说,我想知道它的作用(就堆栈、堆等而言)?
只是:
inline function CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height) {
CGRect rect;
rect.x = x;
rect.y = y;
rect.width = width;
rect.height = height;
return rect;
}
还是还有更多(并且需要学习!
编辑他们没有理由不使其成为构造函数吗?
如果你按住命令点击CGRectMake
Xcode 会显示它的实现。你几乎拥有它;-)
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;
}
你看到的是它,因为它是一个struct
而不是一个类,所以它真的没有更多的东西。由于它是struct
因此存储在堆栈中。
CGRectMake
功能只是制作CGRect
的便捷方法。
另请参阅Matthias Bauch关于cmd +鼠标单击方法以使其实现的出色答案。
您可以单击alt +鼠标以获取方法说明。
相关文章:
- 传递给std::function template的template参数究竟代表什么
- C++关于指针和使用函数将它们启动到堆的行为究竟是什么?
- 当使用对象名称后带有 [] 的类对象时,您究竟会传入什么.C++
- 哪种方式更快?究竟发生了什么,我们没有看到什么?
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 究竟是什么设置了_WIN32或_WIN64预处理器?
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- 这个编译器错误究竟希望我执行什么?
- 在陈述"Implementation-defined"时,什么样的软件是"Implementation"的一部分?究竟什么是"Implementation"?
- 究竟什么是"位填充"或"填充位"?
- 究竟发生了什么,我们需要在 c++ 中双重调度/访客
- 根据标准,究竟什么是"declaration of an object"
- 为了对象替换的目的,究竟什么构成了对象的"name"?
- 被调用的函数究竟什么时候结束
- 究竟什么是"trailing parameter pack"
- 究竟什么是取消点
- c++中究竟什么时候调用析构函数?
- 视觉 究竟什么是 CLI/C++?它与"普通"c++有何不同?
- 就解析而言,究竟什么是令牌?