这是我在下面给出的代码。预期标识符的解决方案是啥
Posted
技术标签:
【中文标题】这是我在下面给出的代码。预期标识符的解决方案是啥【英文标题】:this is my code given below. what is the solution of expected identifier这是我在下面给出的代码。预期标识符的解决方案是什么 【发布时间】:2014-08-03 09:29:14 【问题描述】:存在预期标识符的问题。我想在 Xcode 中编码和获取问题。
UILabel *helloWorldLabel = [UILabel alloc];
if ([helloWorldLabel initWithFrame:[self.view.frame.size.width]] == 320)
NSLog(@"ddhsd˙∆˚¬dlkjld");
//UILabel *new=[[UILabel alloc] initWithFrame:CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>)];
helloWorldLabel.text = @"My first project";
[helloWorldLabel setText:@"My first project"];
helloWorldLabel.textColor=[UIColor whiteColor];
[helloWorldLabel setBackgroundColor:[UIColor redColor]];
helloWorldLabel.textAlignment = NSTextAlignmentCenter;
helloWorldLabel.font=[UIFont boldSystemFontOfSize:18];
helloWorldLabel.layer.borderColor=[UIColor greenColor].CGColor;
helloWorldLabel.layer.borderWidth = 2.0f;
[self.view addSubview:helloWorldLabel];
【问题讨论】:
不知道你在问什么! 请先学会正确编码。您的所有代码都完全无效。 *** 不是开始学习的正确地方。一旦您对编程有了基本的了解,并被困在特定的、非平凡的问题上,您就会被邀请在这里提问。 对不起。我不知道这不适合初学者。你能告诉我什么是合适的地方吗? @duci9y 【参考方案1】:你还没有为 if 语句设置你的文本框架,它为什么存在是我无法理解的。 添加以下代码:
helloWorldLabel.frame = CGRectMake([X position of top-left corner here], [Y position of top-left corner here], [how wide you want the object to be], [how tall you want the object to be];
例如,您想要一个从屏幕左上角开始的 300 x 300 框
helloWorldLabel.frame = CGRectMake( 0, 0, 300, 300);
希望对你有帮助
【讨论】:
【参考方案2】:这行我觉得很奇怪:
[helloWorldLabel initWithFrame:[self.view.frame.size.width]] == 320
我猜你想要的是:
UILabel * helloWorldLabel = [[UILabel alloc] initWithFrame: self.view.frame];
if (ABS(helloWorldLabel.frame.size.width - 320.0f) < 0.01 )
NSLog(@"ddhsd˙∆˚¬dlkjld");
如果 helloWorlLabel 是一个 ivar,你可以把 UILabel * 部分去掉,如果它是一个属性,那么你应该调用
self.hellowWorldLabel = ...
如果您仍然不清楚这一切,请阅读如何在 Objective-C 中创建(alloc 和 init)对象,以及 ivars、属性和局部变量之间的区别。
此外,不应该使用 == 比较浮点数,因为它可能会返回 NO,而由于舍入错误而期望 YES。如果你输入:
CGFloat x = 1;
CGFloat y = 1;
if (x == y)
NSLog(@"Equal");
else
NSLog(@"Not equal, x = %f and y = %f", x, y);
您可能会看到“不等于...”被打印到控制台。这是由于舍入错误: x 可以是 1.0000000000123 和 y 可能是 1.0000000000012
在那里,你取两个浮点数之间的差值的绝对值,然后检查它是否低于某个阈值。对于 UI/像素相关的东西,通常少 tun 0.01 就足够了,但你的情况可能会有所不同。
【讨论】:
self.view.frame.size.width
将是 CGFloat
,不能用作 CGRect
。此外,不为其分配内存的初始化和对象将不起作用。这行代码看不懂:if ((helloWorldLabel.frame.size.width - 320.0f) < 0.01 )
.
糟糕!你是对的,如果当然。伙计,我在那里做了什么...我猜一些复制粘贴出错了。现在改成正确的了,谢谢。
if ((helloWorldLabel.frame.size.width - 320.0f) < 0.01 )
这一行呢?为什么要这样写?
我更改了答案以更好地解释这个问题。以上是关于这是我在下面给出的代码。预期标识符的解决方案是啥的主要内容,如果未能解决你的问题,请参考以下文章