使用Objective-C格式字符串中的三元运算符

时间:2015-07-21 17:15:54

标签: objective-c

我正在Objective-C中创建一个格式化的字符串。当其中一个值为null或为空时,我想要使用“。”。代替。字符串值来自单例上的属性,我试图使用三元运算符来执行此操作但似乎失败,因为我正在尝试子字符串空字符串。这是我的代码:

NSString *namelabel = [NSString stringWithFormat:@"%@",
                      [[[User_Singleton sharedUser] valueForKey:@"LastName"] substringToIndex:1] ? : @"."];

1 个答案:

答案 0 :(得分:2)

空字符串不会以这种方式被替换,因为@""在三元运算符中求值为YES。要解决此问题,您可以使用length属性,nil@""都为0。

这样可行:

NSString *namelabel = [NSString stringWithFormat:@"%@ %@",
    [[User_Singleton sharedUser] valueForKey:@"FirstName"],
    [[[User_Singleton sharedUser] valueForKey:@"LastName"] length] ?
    [[[User_Singleton sharedUser] valueForKey:@"LastName"] substringToIndex:1] : @"."];