コレクションリテラルの記述方法に注意
#define COL_A @"columnA" #define COL_B @"columnB" #define COL_C @"columnC" #define COL_D @"columnD" NSArray* colums = @[COL_A, COL_B, COL_C COL_D ];
このようにNSArrayを定数で初期化した結果のダンプは
$0 = 0x0b49f510 <__NSArrayI 0xb49f510>( columnA, columnB, columnC, columnD )
ではなく、
$0 = 0x0b49f510 <__NSArrayI 0xb49f510>( columnA, columnB, columnCcolumnD )
である。
なんてことないCOL_CとCOL_Dに区切り文字がないだけなのだが、Objective-Cのヒアドキュメント(風)の文字列がエラーを隠してしまい、序数2の配列に格納されるため、実行時バグとして表出する。
コンパイルエラーって大事だよねぇ。