recherche

Maison  >  Questions et réponses  >  le corps du texte

Objective-c - Pourquoi la propriété copy dans l'objet c renvoie-t-elle un objet qui n'est pas une copie complète ?

Objet déclaré comme

@interface MyClass : NSObject
@property (atomic, copy) NSMutableString *name;
@end

est défini comme

@implementation MyClass
@synthesize name;
@end

Appeler

MyClass *m = [[MyClass alloc] init];
NSMutableString *s = [[NSMutableString alloc] initWithString:@"Hello"];
[m setName:s];
NSLog(@"%p", [m name]);
NSLog(@"%p", [m name]);
NSLog(@"%p", [m name]);

Si l'objet renvoyé par copie à chaque fois est une copie complète de la chaîne variable, pourquoi les adresses imprimées sont-elles les mêmes ?

伊谢尔伦伊谢尔伦2788 Il y a quelques jours696

répondre à tous(2)je répondrai

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-02 09:37:32

    copy fait référence à une opération de copie lors de l'attribution d'une valeur. Vous pouvez essayer d'imprimer à nouveau l'adresse de s ps : utilisation de l'attribut de type mutable
    copy.

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-02 09:37:32

    Euh. . Vous avez imprimé trois fois la même adresse, comment pouvez-vous la modifier ?

    répondre
    0
  • Annulerrépondre