2009-08-30 6 views
5

C'est un peu déroutant. NSMutableString hérite de NSString, mais cela signifie-t-il que je peux passer un NSMutableString n'importe où en toute sécurité là où un NSString est réellement requis? Puis-je attribuer un NSString à un NSMutableString? Comment puis-je obtenir un NSString sur un NSMutableString pour éviter les problèmes, le cas échéant?Comment faire pour sortir un NSString d'un NSMutableString?

Répondre

17
  1. Oui, vous pouvez passer un NSMutableString pour un NSString. Cependant, sachez que si l'objet que vous transmettez contient une référence à cet objet, il "verra" toutes les modifications que vous apportez à l'objet string mutable. Ce n'est pas toujours souhaitable.

  2. Non, impossible. Si vous aviez un pointeur NSMutableString pointant vers un NSString et appelé, par exemple, appendString:, l'objet ne saurait pas comment traiter l'appel.

    (les deux premiers sont les bases de polymorphisme d'inclusion OO)

  3. Si vous souhaitez obtenir une chaîne non mutable d'un mutable, utilisez [mutableString copy].

Questions connexes