定数式が好き

Objective-Cの冗長さを知っているプログラマは最近※導入された定数記法と定数式が皆大好きだろう。

ちょっとしたことだが、メソッドの引数パラメタvalueが文字列かリストか分からない場合にそれをパースするには

- (void)parseValue:(id)value
{
    id<NSFastEnumeration> array = [value conformsToProtocol:@protocol(NSFastEnumeration)]
         ? value
         : @[value];
         
    for (NSString* s in array)
    {
       //文字列に対して処理
    }
}

便利だ。

あと、定数式はそれ自体ちゃんとしたオブジェクトとして扱われるので

for (int i = 0; i < 100; i++)
{
    NSString* stringValue = [@(i) stringValue];
}

不思議に見えるけど、@(i) は NSNumberオブジェクトを生成する定数式なのでこの書き方もOK。
NSStringクラスの書式付きコンストラクタを使っても同じことはできるんだけど、

[[NSString alloc] initWithFormat:@"%i", i];

このコンベンショナルな書き方は打鍵数が倍になる。
Objective-Cのメソッドはとにかく長いのだ。 Xcodeが無ければとうに心が折れているだろう。

※since Xcode 4.4 (+ LLVM 4.0) Modern Objective-Cだからもう最近でもないか。