apple - objective-c从哪个版本开始就不用手动管理内存了?
PHP中文网
PHP中文网 2017-04-21 11:18:14
0
4
611

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

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(4)
左手右手慢动作

2.0
2.0 ajoute GC

伊谢尔伦

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"

阿神

Depuis iOS 5. Xcode 4.2.

阿神

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal