Ber*_*hot -2 if-statement objective-c parameter-passing
这是我目前的代码,
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGRect *FullViewRect = NULL;
if (screenRect.size.height == 568.0f) // iPhone 5
{CGRect FullViewRect = CGRectMake(0, 0, 320, 568);}
else
{CGRect FullViewRect = CGRectMake(0, 0, 320, 480);}
UILabel *Count3 = [[UILabel alloc] initWithFrame: FullViewRect];
Count3.backgroundColor = [UIColor blueColor];
[self.view addSubview:Count3];
Run Code Online (Sandbox Code Playgroud)
但是Count3不可见?没有给出错误,但FullViewRect没有任何价值.
小智 5
我想知道这是如何编译的.它不应该.
UILabel *Count3 = [[UILabel alloc] initWithFrame: FullViewRect];
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为FullViewRect是a CGRect *,但方法需要a CGRect.(为什么你会假设而不是阅读文档?)
此外,您将在if语句的分支内重新声明该变量.您的代码需要(变量名称固定为以小写字母开头):
CGRect fullViewRect;
if (screenRect.size.height == 568.0f) {
fullViewRect = CGRectMake(0, 0, 320, 568);
} else {
fullViewRect = CGRectMake(0, 0, 320, 480);
}
Run Code Online (Sandbox Code Playgroud)
但是,这是一个过于基本的东西.如果你不理解这一点,你应该学习C并且不尝试制作iOS应用程序.
另一个错误是:
if (screenRect.size.height == 568.0f)
Run Code Online (Sandbox Code Playgroud)
永远不要试图比较像这样的浮点数,因为它们并不精确.使用这样的东西代替:
if (screenRect.size.height > 500.0f)
Run Code Online (Sandbox Code Playgroud)
或类似的.
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |