我有一个从文本文件加载的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;
}
答案 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:@""]
,否则您只是比较指针。