Xcode:带有文本框的 If 语句

Posted

技术标签:

【中文标题】Xcode:带有文本框的 If 语句【英文标题】:Xcode: If Statements with textbox 【发布时间】:2011-08-14 05:02:18 【问题描述】:

所以我有问题这样做。这段代码不会按我想要的方式工作。

if (answer.text == @"text") 
    UIAlertView  *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
    [alert release];
else
    UIAlertView  *alert1 = [[UIAlertView alloc] initWithTitle:@"title 2" message:@"Title 2" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert1 show];
    [alert1 release];

我的问题是文本框“答案”中有文本“文本”,它不会执行第一个 UIAlertView。它总是执行 else 中的那个。此代码也在按钮的 IBAction 中。现在任何帮助都是好的。

【问题讨论】:

尝试像这样比较字符串:[answer.text isEqualToString:@"text"] 还要确保正确连接了插座(answerIBOutlet)。 【参考方案1】:

== 运算符只比较指针,因此两个相同的 NSString 实例不会比较相等。改用比较方法:

if ([answer.text isEqualToString:@"text"]) ...

【讨论】:

【参考方案2】:
if ([text isEqualToString:@"text"]) 

一个很好的提示:

在许多语言中,使用== 来比较sting 通常不是一个好主意。我总是寻找比较字符串函数或方法。我建议你这样做,除非语言手册另有说明。

【讨论】:

那是因为在很多语言中变量只是指针。 == 一般是指针比较。

以上是关于Xcode:带有文本框的 If 语句的主要内容,如果未能解决你的问题,请参考以下文章

带有相应文本字段的组合框的验证

C#中如何检查文本框的输入信息是不是为数字?

在带有文本框的列表框中,如何关注添加的文本框?

如果带有文本框的单元格的函数值

Fabric.js - 带有免费矩形边界框的文本,如 Google 幻灯片

在网格视图中添加带有文本框的 runat 服务器标记时使用 jquery 函数