Objective c 在方法中使用CGRectMake之类的函数而不是先创建变量是否有错?

Objective c 在方法中使用CGRectMake之类的函数而不是先创建变量是否有错?,objective-c,Objective C,例如: someView = [[UIView alloc] initWithFrame:CGRectMake(120, 205, 200, 200)]; 而不是: CGRect frame = CGRectMake(120, 205, 200, 200); someView = [[UIView alloc] initWithFrame:frame]; 我似乎只看到了第二个例子。这只是为了可读性吗?或者这有什么好的理由吗?这只是风格的问题。两者是等价的,可能会编译成相同的东西。这只是风格问

例如:

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

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

我似乎只看到了第二个例子。这只是为了可读性吗?或者这有什么好的理由吗?

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

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

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

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

第二个选项的问题是,如果您在同一范围内制作了大量的
CGRect
,您需要防止代码重新定义
frame
,覆盖变量,或者为不同的画面取不同的名字


为了使您的代码更具可移植性,我每次都会选择第一个选项。但是如果它有点太复杂,那么出于可读性的考虑,我会将其拆分。

第二个选项的问题是,如果您在同一范围内创建了大量的
CGRect
,则需要防止代码重新定义
frame
,覆盖变量,或者为不同的帧指定不同的名称


为了使您的代码更具可移植性,我每次都会选择第一个选项。但是如果它有点太复杂,那么为了可读性,我会把它拆分出来。

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

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

  • 如果要多次重用同一个rect,则有必要声明一次并重用它。虽然CGRectMake是一种廉价的操作,但它仍然是一种很好的实践,特别是如果您在循环中多次运行此代码


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

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

  • 如果要多次重用同一个rect,则有必要声明一次并重用它。虽然CGRectMake是一种廉价的操作,但它仍然是一种很好的实践,特别是如果您在循环中多次运行此代码