我希望实现与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;
}
或者还有更多(并且需要学习!)?
修改 他们有没有理由不把它变成构造函数?
答案 0 :(得分:2)
如果您按住命令单击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;
}
答案 1 :(得分:1)
你看到的是什么,因为它是一个struct
而不是一个类,真的没有更多的东西。由于它是struct
,它存储在堆栈中。
CGRectMake
函数只是制作CGRect
的便捷方法。
另请参阅Matthias Bauch关于 cmd +鼠标点击方法以获得实现的完美答案。
您可以通过 alt +鼠标点击来获取方法说明。