新开发者...我的你好世界应用程序不工作。我的琴弦有什么问题?
我已经添加了一个按钮,我希望将标签从“Hello World”切换到“再见世界”,现在它只是说“再见世界”并且不会改变....我在做什么错误?新开发者...我的你好世界应用程序不工作。我的琴弦有什么问题?
- (IBAction)button:(id)sender {
NSString *mystr = @"Hello World";
if (strcmp(label.text, mystr) == 0) {
label.text = @"Goodbye World";
}
else
{
label.text = @"Hello World";
}
//label.text = [NSString stringWithFormat:@"%d", strcmp(label.text, @"Hello World")];
}
试试这个:
if ([label.text isEqualToString:@"Hello World"]) {
label.text = @"Goodbye World";
}
else
{
label.text = @"Hello World";
}
此代码工作!围绕if(...)代码中的代码括号[]的目的是什么?我更像是C/C++/C#程序员,所以这对我来说有点奇怪。 – 2012-01-31 05:30:01
语句中的括号是Objective-C中的语法。如果你想调用一个对象的方法,语法是:[myObject myMethod]; – 2012-01-31 05:36:37
我还以为你会使用比较字符串可可的NSString的方法更安全。试试“isEqualToString”。
我发现,但我用奇怪的Xcode语法挣扎了一下。我知道@用于字符串文字,但为什么围绕这段代码的括号?为什么在isEqualToString之后冒号,我期望()的。有没有一个好的语法资源开始? – 2012-01-31 05:32:57
@用于创建静态NSString实例,而不仅仅是字符串。你仍然可以定义没有@符号的C字符串,但通常情况下你最好在Cocoa中使用NSStrings.Time来打破Objective-C和Cocoa的一些文档! – 2012-01-31 05:43:21
你最初在label.text中传递了什么? – Sarah 2012-01-31 05:25:45
“继续...按下我”,但它应该切换。标签的起始位置无关紧要。 – 2012-01-31 05:26:23