如果语句与空UILabel

我有一个UILabel加载forms的文本文件。 有时文本文件中有东西,有时是空的。 所以有时候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; } 

你正在做的是比较指针,这不适用于string。 用这个

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

你做错了,错了。

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

错误2:即使你有这个位,这是比较string的错误方法。 使用isEqualToString:或者在其他答案中检查长度。

错误3:逻辑可能应该基于string,然后再将它们分配给标签,而不是回读标签中的内容。 这是一个更干净的MVC实现。

你应该理想的使用:

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

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

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