if语句和stringWithFormat

时间:2014-07-25 20:32:15

标签: ios objective-c nsstring

我需要知道是否有办法使用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,这就是我没有使用字典的原因。

3 个答案:

答案 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];
    }