Les nouveautés d'iOS 5 pour développer iOS 5 : comptage de références automatique

Compilateur LLVM 3.0

LLVM (Low Level Virtual Machine, machine virtuelle de bas niveau) est un
nouveau projet de compilateur que l'on doit en partie à Apple. Même si techniquement il n'appartient pas à iOS 5, les développeurs ont intérêt à connaître sur le bout des doigts toutes les nouvelles fonctionnalités introduites par LLVM. Parmi celles-ci, on peut citer une meilleure autocomplétion du code et surtout une compilation bien plus rapide. Reportez-vous au Chapitre 2 pour découvrir l'ensemble des fonctionnalités de LLVM et leur impact sur Xcode 4.

Comptage de références automatique

Le comptage de références automatique (ARC, Automatic Reference Counting) constitue une autre nouveauté essentielle d'iOS 5. Il s'agit d'une fonctionnalité intégrée au compilateur LLVM : vous pouvez ainsi l'exploiter sans pour autant forcer votre application à être compatible avec iOS 5. On peut donc utiliser ARC dans les applications ciblant iOS 4 ou supérieur, et Xcode 4.2 facilite la migration de votre code à l'aide de l'outil de conversion en Objective-C ARC. Le compilateur LLVM s'imposant désormais comme la nouvelle référence, ARC devrait rapidement supplanter la gestion manuelle de la mémoire à grands renforts de retain/release.

Info
Le comptage de références automatique ne s'apparente pas au ramasse-miettes inclus dans Mac OS X depuis sa version 10.5 (Leopard). Le ramasse-miettes est une gestion automatique de la mémoire. Concrètement, les développeurs n'ont pas à associer une déclaration release à chaque état retain. Le compilateur les insère automatiquement
à leur place.


ARC introduit deux qualificateurs - strong et weak - et impose de nouvelles règles, comme l'impossibilité d'invoquer release, retain sur le moindre objet. Cela s'applique également aux méthodes dealloc personnalisées. Lorsque l'on emploie ARC, ces dernières ne doivent donc libérer que des ressources (des fichiers ou des ports) et non des variables d'instance.

On évoque en détail ARC au Chapitre 3.