我需要知道是否有办法使用if语句显示某些nsstrings,具体取决于NSString是否包含任何数据。
我有nsstring
名为visitorInfo
。
该字符串使用来自其他字符串的数据(即用户正在运行的操作系统)并显示该信息。以下是我所谈论的一个例子:
NSString *visitorInfo = [NSString stringWithFormat:@"INFO\n\nVisitor Location\n%@\n\nVisitor Blood Type\n\%@", _visitor.location, _visitor.bloodType];
它会显示如下:
INFO
Location
Miami, FL
Blood Type
O positive
但是,我有几个数据只在用户选择时加载。即他们的电子邮件地址。
下面这段代码可以实现我想要的,但是我的visitorInfo
字符串包含大量不同的字符串,如果我使用下面的代码,那么如果用户不能加载任何字符串选择不提交他的血型。
if ([self.visitor.bloodType length] > 0) {
NSString *visitorInfo = [NSString stringWithFormat:@"INFO\n\nVisitor Location\n%@\n\nVisitor Blood Type\n\%@", _visitor.location, _visitor.bloodType];
}
所以基本上如果他们的数据存储在bloodType中,那么我就会运行该代码,但如果没有任何数据,我只希望它跳过bloodType,并完成显示其余的数据。
如果您还有其他问题,请与我们联系
其他细节。我出于特定原因使用NSString
,这就是我没有使用字典的原因。
答案 0 :(得分:2)
使用NSMutableString
:
NSMutableString *visitorInfo = [NSMutableString stringWithFormat:@"INFO\n\nVisitor Location\n%@, _visitor.location];
if ([self.visitor.bloodType length] > 0) {
[visitorInfo appendFormat:@"\n\nVisitor Blood Type\n\%@", _visitor.bloodType];
}
答案 1 :(得分:1)
您可以使用以下
检查字符串中是否包含任何数据if([_visitor.location length]<1){
//This means there's no data and is a better way of checking, rather than isEqualToString:@"".
}else{
//there is some date here
}
**编辑 - (只是重新阅读你的问题,抱歉这个答案取决于_visitor.location首先是一个字符串) *
我希望这会有所帮助
答案 2 :(得分:1)
试试这个 -
NSString *str = @"INFO";
if (_visitor.location) {
str = [NSString stringWithFormat:@"\n\nVisitor Location\n%@",_visitor.location];
}
if (_visitor.bloodType) {
str = [NSString stringWithFormat:@"\n\nVisitor Blood Type\n\%@",_visitor.bloodType];
}