copy属性付のNSMutableArray型プロパティではセッターをオーバーライドしないといけないらしい

iOS用アプリの勉強中にこのチュートリアルを読んでいたんですけど

こんな感じでNSMutableArray型のプロパティを定義した場合、

@property (nonatomic, copy) NSMutableArray *masterBirdSightingList;

セッターメソッドであるsetMasterBirdSightingListをオーバーライドして

- (void)setMasterBirdSightingList:(NSMutableArray *)newList {
  if (_masterBirdSightingList != newList) {
   _masterBirdSightingList = [newList mutableCopy];
  }
}

mutableCopyを使うようにしなさい、と書いてあった。なんでかいな?と思ったんだけど、NSMutableArrayのcopyメソッドはNSMutableArrayではなくNSArrayを返すようです。それってコピーじゃないじゃん?という気もしますが、仕様なのでしょうがないですね。でミュータブルな配列であるNSMutableArrayでコピーを生成したい場合はmutableCopyを使えってことなんですね。
一つ勉強になりました。