NSStringとNSMutableString

また、小1時間ほどハマりました。

まず、やったのは以下のコード。

NSMutableString* str = @"hoge";
[str setString: @"naunau"];

これで実行時にエラーが出ます。
しかし、コンパイルエラー(シンタックス)が出ないのでなかなか気づかない。

問題はコレ
@"hoge"
このこは文字列定数で、NSStringなのだそうです。NSMutableString型に代入できちゃうもんだから気づかない!
2行目で実行しているstrオブジェクトはNSString型で、setStringメソッドを実装していないのでエラーになっていた模様。

わかりずらい。。。