18

私は次のC#コードと同等のものを達成しようとしています:

someStringValue = someStringValue ?? string.Empty;

someStringValueがnullの場合、(空の文字列:)の値がstring.Empty割り当て""られます。Objective-Cでこれを達成するにはどうすればよいですか?私の唯一の選択肢です:

if(!someStringValue)
   someStringValue = @"";

@Dave DeLongのおかげで解決策

someStringValue = someStringValue ?: @"";
4

2 に答える 2

29

単純で、三項演算子を使用します。

someStringValue = someStringValue ? someStringValue : @"";

または、マクロが必要な場合は、それも実行できます。

#if !defined(StringOrEmpty)
    #define StringOrEmpty(A)  ({ __typeof__(A) __a = (A); __a ? __a : @""; })
#endif

使用例:

someStringValue = StringOrEmpty(someStringValue);
于 2013-01-05T18:25:16.787 に答える
0

someStringValueがクラス変数の場合、このコードを文字列を所有する.mファイルに追加できます。

- (void)setSomeStringValue:(NSString *)newSomeStringValue
{
   if (!newSomeStringValue) newSomeStringValue = @"";
   _someStringValue = newSomeStringValue;
}
于 2013-01-05T18:28:40.157 に答える