如何从NSMutableString中取出NSString?

5 iphone cocoa-touch uikit

这有点令人困惑.NSMutableString继承自NSString,但这是否意味着我可以安全地将NSMutableString传递到实际需要NSString的地方?我可以将NSString分配给NSMutableString吗?如何从NSMutableString中获取NSString以避免问题(如果有的话)?

Rüd*_*nke 17

  1. 是的,你可以通过NSMutableString一个NSString.但是,请注意,如果传递它的对象存储对此对象的引用,它将"看到"您对可变字符串对象所做的所有更改.这并不总是令人满意的.

  2. 不,不可能.如果你有一个NSMutableString指针指向a NSString并且appendString:在其上调用,那么该对象将不知道如何处理该调用.

    (前两个是OO包含多态性基础)

  3. 如果你想从一个可变的字符串中获取一个不可变的字符串,请使用[mutableString copy].