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

apple - objective-c从哪个版本开始就不用手动管理内存了?

下载了xcode5,写代码时对一个变量比如NSString *str = [[NSString alloc] init]类似这样的写法,都不用手动释放内存了么?([str release])。这个特性是从xcode哪个版本开始的?
还有,那这样是不是意味着xcode5就是像java那样的自动管理内存了呢?

PHP中文网PHP中文网2739 Il y a quelques jours577

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

  • ringa_lee

    ringa_lee2017-04-21 11:20:14

    2.0
    2.0 ajoute GC

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:20:14

    Vous cherchez réellement un article ici ? "L'histoire derrière la chaîne d'outils de compilation LLVM de Mac OS X (8) par trois bons étudiants Chris Lattner"

    répondre
    0
  • 阿神

    阿神2017-04-21 11:20:14

    Depuis iOS 5. Xcode 4.2.

    répondre
    0
  • 阿神

    阿神2017-04-21 11:20:14

    Jusqu'à présent, les développeurs Objective-C peuvent disposer de plusieurs méthodes de gestion de la mémoire, la plus courante étant [object dealloc].

    MRC : chaque fois que [object retention] est référencé, le nombre de références sera de +1 et [object release] sera utilisé pour empêcher la libération accidentelle et les pointeurs sauvages.

    GC : Ceci n'est pris en charge que par Cocoa. NSGarbageCollector peut implémenter un garbage collection automatique similaire à Java. L'inconvénient est que cela affecte les performances, donc Cocoa Touch ne fournit pas cette fonction.

    ARC : Il s'agit d'une nouvelle fonctionnalité (en fait, pas nouvelle). Le nouveau compilateur par défaut de Xcode, Apple LLVM, remplace le précédent LLVM-GCC et utilise Clang comme frontal, livré avec un analyseur statique. compilation, et l'analyseur la terminera là où conserver et libérer doivent être ajoutés. ARC peut prendre en charge un grand nombre d’opérations de comptage manuel de références et éviter de nombreuses erreurs. Après avoir utilisé ARC, il est interdit d'utiliser manuellement les méthodes de conservation et de libération. Vous pouvez surcharger dealloc mais uniquement implémenter des versions personnalisées.

    J'ai fait des recherches à ce sujet récemment. Veuillez me corriger s'il y a des erreurs

    répondre
    0
  • Annulerrépondre