如果声明空UILabel

时间:2013-01-27 16:51:17

标签: ios objective-c if-statement uilabel

我有一个从文本文件加载的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 个答案:

答案 0 :(得分:3)

你做错了,错了。

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

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

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

答案 1 :(得分:1)

理想情况下应该使用:

if ([self.label.text length] > 0) 

答案 2 :(得分:1)

你正在做的是比较指针,它不适用于字符串。使用此

if ([self.wordlabel.text isEqualToString:@"thestring"])

答案 3 :(得分:1)

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

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