我正在Objective-C中创建一个格式化的字符串。当其中一个值为null或空时,我想使用"。"代替。字符串值来自一个单例的属性,我试图使用三元运算符来做到这一点,但似乎失败了,因为我试图子字符串一个空字符串。下面是我的代码:
NSString *namelabel = [NSString stringWithFormat:@"%@",
[[[User_Singleton sharedUser] valueForKey:@"LastName"] substringToIndex:1] ? : @"."];
空字符串不会以这种方式被替换,因为在三元运算符中@""
的计算结果为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] : @"."];