Xcode 4.4 で新しいプロジェクトを作成し、次の行を追加すると:
NSDictionary *test = @{ @"key" : @"test value" };
NSString *value = test[@"key"];
NSLog(@"value is: %@", value);
警告なしでコンパイルされ、期待どおりに実行されます。
同じ行を既存のプロジェクトに追加すると、コンパイラ エラーが発生します。
NSString *value = test[@"key"]; <-- Expected method to read dictionary element not found on object of type 'NSDictionary *'
両方のプロジェクトのターゲット ビルド設定を比較しましたが、何も浮かびませんでした。
更新: 正常にコンパイルされた新しいプロジェクトは OSX 用でした。上記の行でiOS用の別の新しいものを試してみましたが、既存の(iOS)プロジェクトと同じようにコンパイルに失敗しました。