Iphone 如何从NSMutableString中提取NSString?

Iphone 如何从NSMutableString中提取NSString?,iphone,cocoa-touch,uikit,Iphone,Cocoa Touch,Uikit,这有点令人困惑。NSMutableString继承自NSString,但这是否也意味着我可以将NSMutableString安全地传递到实际需要NSString的任何位置?我可以将NSString分配给NSMutableString吗?如何从NSMutableString中提取NSString以避免出现问题(如果有) 是的,您可以为NSString传递NSMutableString。但是,请注意,如果您将其传递给的对象存储了对此对象的引用,它将“看到”您对可变字符串对象所做的所有更改。这并不总是

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

  • 是的,您可以为
    NSString
    传递
    NSMutableString
    。但是,请注意,如果您将其传递给的对象存储了对此对象的引用,它将“看到”您对可变字符串对象所做的所有更改。这并不总是可取的

  • 不,不可能。如果您有一个指向
    NSString
    NSMutableString
    指针,并在其上调用了
    appendString:
    ,则对象将不知道如何处理该调用

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

  • 如果要从可变字符串获取不可变字符串,请使用
    [mutableString copy]