我正在尝试实现以下C#代码的等价物:
someStringValue = someStringValue ?? string.Empty;
如果someStringValue
为空,则将分配值string.Empty
(空字符串:""
)。我如何在Objective-C中实现这一目标?是我唯一的选择:
if(!someStringValue)
someStringValue = @"";
解决方案感谢@Dave DeLong :
someStringValue = someStringValue ?: @"";
答案 0 :(得分:27)
简单,使用三元运算符。
someStringValue = someStringValue ? someStringValue : @"";
或者如果你想要一个宏,你也可以这样做。
#if !defined(StringOrEmpty)
#define StringOrEmpty(A) ({ __typeof__(A) __a = (A); __a ? __a : @""; })
#endif
样本用法:
someStringValue = StringOrEmpty(someStringValue);
答案 1 :(得分:0)
如果someStringValue是一个类变量,您可以将此代码添加到拥有该字符串的.m文件中
- (void)setSomeStringValue:(NSString *)newSomeStringValue
{
if (!newSomeStringValue) newSomeStringValue = @"";
_someStringValue = newSomeStringValue;
}