何がどうなっていたのか

昨日のエントリの話です。
http://d.hatena.ne.jp/masakih/20120429/1335715264

インポートしたファイルの中に、このような非形式プロトコルがあったのが原因でした。

@interface NSObject (Hoge)
- (void)setTitle:(NSString *)title;
@end

非形式プロトコルは、「これらのメソッドが実装されていたら呼び出しますよ」という宣言です。
が、コンパイラには、「すべてのObjcオブジェクトはこれらのメソッドを実装しています」という宣言と区別がつきません。
これが、readonlyなプロパティ title に対する値の代入が可能であった原因です。