setter 应复制 NSStrings

Tip

接受 NSString 作为参数的 setter,应该总是 copy 传入的字符串。

永远不要仅仅 retain 一个字符串。因为调用者很可能在你不知情的情况下修改了字符串。不要假定别人不会修改,你接受的对象是一个 NSString 对象而不是 NSMutableString 对象。

  1. - (void)setFoo:(NSString *)aFoo {
  2. [foo_ autorelease];
  3. foo_ = [aFoo copy];
  4. }