在方法中使用CGRectMake等函数而不是先创建变量是错误的吗?

时间:2011-02-15 20:46:03

标签: objective-c

例如:

someView = [[UIView alloc] initWithFrame:CGRectMake(120, 205, 200, 200)];

而不是:

CGRect frame = CGRectMake(120, 205, 200, 200);
someView = [[UIView alloc] initWithFrame:frame];

我好像只看到第二个例子。它只是为了可读性吗?或者有充分的理由吗?

4 个答案:

答案 0 :(得分:2)

这只是风格问题。这两个是等价的,可能会编译成同样的东西。

答案 1 :(得分:1)

唯一的区别就在于您已经指出的可读性。如果您需要相同的维度,它还可以使CGRect结构在代码中的其他位置重用。

答案 2 :(得分:1)

两段代码都有相同的效果。使用第二种模式可能有几个原因:

  • 代码可以更容易阅读。您可以将变量命名为更具描述性。

  • 如果您多次重复使用相同的矩形,则将其声明一次并重复使用可能是有意义的。虽然CGRectMake是一种廉价的操作,但它仍然是一种很好的做法,特别是如果你在循环中多次运行这段代码。

答案 3 :(得分:0)

第二个选项的问题是,如果您在同一范围内制作了大量CGRect,则需要阻止代码重新定义frame,覆盖变量,或者为不同的框架提出不同的名称。

为了让您的代码更具便携性,我每次都会选择第一个选项。但如果它有点过于复杂,那么为了便于阅读,我会把它分开。