1

我有一个从文本文件加载的 UILabel。有时文本文件中有一些东西,有时它是空的。所以有时 UILabel 是空白的,有时它里面有文本。

我想写一个 if 语句,说如果 UILabel 是空白的,如果它有文本做另一件事做另一件事。

我试过了

if (self.label.text = NULL)

if (self.label.text = @"") 

但它不能正常工作。

使用if (self.label.text = @""),我得到了 if 语句,但 else 语句不起作用。

这是我的代码

NSString *stuff3 = @"/Stuff";
NSString *titleName = [familyDictionary objectForKey:@"identity"];

NSArray *paths3 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                      NSUserDomainMask, YES);
NSString *documentsDirectory3 = [paths3 objectAtIndex:0];
NSString *stuffPath3 = [documentsDirectory3 stringByAppendingPathComponent:stuff3];
NSString *fullPath3 = [stuffPath3 stringByAppendingPathComponent:titleName];

self.title = [NSString stringWithContentsOfFile:fullPath3  encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"full path 3 >>>%@",fullPath3);

NSString *stuff4 = @"/Stuff/Objects";
NSString *textName3 = [familyDictionary objectForKey:@"identity"];
NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                      NSUserDomainMask, YES);
NSString *documentsDirectory2 = [paths2 objectAtIndex:0];
NSString *stuffPath = [documentsDirectory2 stringByAppendingPathComponent:stuff4];
NSString *fullPath2 = [stuffPath stringByAppendingPathComponent:textName3];
self.wordlabel.text = [NSString stringWithContentsOfFile:fullPath2  encoding:NSUTF8StringEncoding error:NULL];

//Now load the image at fullPath and install it into our image view's image property.
 NSLog(@"full path 3 >>>%@",fullPath2);

if(self.wordlabel.text = @"") 
{
    [textView setTitle:[NSString stringWithContentsOfFile:fullPath3  encoding:NSUTF8StringEncoding error:NULL] forState:UIControlStateNormal] ;
    textView.titleLabel.adjustsFontSizeToFitWidth = TRUE;
}
else
{
    [textView setTitle:[NSString stringWithContentsOfFile:fullPath2  encoding:NSUTF8StringEncoding error:NULL] forState:UIControlStateNormal] ;
    textView.titleLabel.adjustsFontSizeToFitWidth = TRUE;
}
4

4 回答 4

3

你做错了,错了。

错误1:=是赋值运算符,==是相等运算符。您在 if 语句中使用赋值运算符,您至少应该得到一个编译器警告。

错误2:即使你有一点正确,它也是比较字符串的错误方法。使用isEqualToString:或检查其他答案中的长度。

错误 3:在将字符串分配给标签之前,逻辑可能应该基于字符串,而不是通过回读标签中的内容。这是一个更干净的 MVC 实现。

于 2013-01-27T17:18:04.853 回答
1

理想情况下,您应该使用:

if ([self.label.text length] > 0) 
于 2013-01-27T17:10:12.803 回答
1

您正在做的是比较指针,这不适用于字符串。用这个

if ([self.wordlabel.text isEqualToString:@"thestring"])
于 2013-01-27T17:10:43.953 回答
1

当您说self.label.text = @"" 您正在更改标签的文本时。=是赋值运算符。==是比较运算符。

但是,要比较字符串,必须使用比较方法[self.label.text isEqualToString:@""],否则只是比较指针。

于 2013-01-27T17:17:44.077 回答