我正在Objective-C中创建一个格式化的字符串。当其中一个值为null或为空时,我想要使用“。”。代替。字符串值来自单例上的属性,我试图使用三元运算符来执行此操作但似乎失败,因为我正在尝试子字符串空字符串。这是我的代码:
NSString *namelabel = [NSString stringWithFormat:@"%@",
[[[User_Singleton sharedUser] valueForKey:@"LastName"] substringToIndex: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] : @"."];