如果语句与空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:@""]
,否则您只是比较指针。