En tant que programmeur iPhone débutant, quelle est la meilleure pratique pour écrire des applications à utiliser avec iOS 5 ou des versions antérieures? Plus précisément, dois-je continuer à utiliser la libération / conservation des données, ou dois-je ignorer cela? Est-ce que ça importe?
iphone
ios
ios5
memory-management
automatic-ref-counting
Une fille geek
la source
la source
Réponses:
C'est à vous. Vous pouvez écrire des applications à l'aide de l'ARC (comptage automatique des références), et Xcode écrira un «code de colle» pour permettre à vos applications compatibles ARC de fonctionner sur iOS 4, aucune modification requise. Cependant, certaines choses ne fonctionneront pas, et surtout de nombreuses bibliothèques que vous souhaiterez peut-être utiliser généreront (parfois) d'innombrables erreurs et vous ne pourrez pas les utiliser jusqu'à ce que les développeurs publient une mise à jour compatible avec ARC.
Edit : J'ai récemment découvert que vous pouvez désactiver ARC sur une base par fichier. Voir la réponse de pixelfreak . Donc, mon conseil tient toujours, mais maintenant les bibliothèques tierces ne devraient pas avoir besoin d'être mises à jour pour fonctionner avec ARC.
Voici ce que dit Apple sur la désactivation de l'ARC pour des fichiers spécifiques:
Consultez le guide de transition complet ici .
la source
-fno-objc-arc
JSONKit
, par exemple. Essayez de l'exécuter via la vérification ARC. Vous verrez ce que je veux dire. ;)Pour tous ceux qui souhaitent encore savoir comment désactiver ARC sur des fichiers individuels, voici ce que j'ai fait:
Build Phases > Compile Sources
Je ne sais pas si c'est la méthode recommandée, mais cela fonctionne pour moi.
PS: J'ai rassemblé ces informations sur clang.llvm.org ici qui est accessible au public, donc pas sous NDA.
la source
iOS 5 est toujours sous NDA, et le sera probablement jusqu'à ce qu'ils publient la version publique. Si vous avez un compte développeur, rendez- vous sur les forums des développeurs Apple et demandez-y.
Pour les versions précédentes, vous devez compter les références et conserver et libérer en conséquence. Consultez le guide de gestion de la mémoire .
Edit: Voici une spécification publique pour le comptage automatique des références et une citation de la page publique iOS 5 :
la source
Les détails sont légers / sous NDA pour le moment, mais Apple a implémenté le comptage automatique des références (ARC) dans iOS 5, comme détaillé ici: http://developer.apple.com/technologies/ios5/
Si vous développez une nouvelle application dans Xcode 4 avec le SDK iOS 5, vous pouvez ignorer en toute sécurité le comptage de rétention / libération.
[modifier] sudo rm -rf fait un bon point; les bibliothèques tierces peuvent être considérablement affectées
la source
Personne n'a mentionné SystemConfiguration.framework ? N'oubliez pas de le mettre dans Frameworks . J'ai mis misérablement plusieurs heures à m'en rendre compte.
la source
C'est certainement le choix du développeur ou de l'équipe. ARC (Automatic Reference Counter) a rendu les choses un peu plus faciles en gérant automatiquement la mémoire pour vous. Il publiera, conservera et désaffectera le cas échéant. Je pense que vous devriez acquérir de l'expérience dans la gestion de la mémoire vous-même, de préférence dans une application de test, si vous ne l'avez pas déjà fait. Une autre chose à considérer est de savoir si votre application repose sur des bibliothèques tierces qui, si elles ne sont pas converties en ARC, empêcheront votre application de se compiler. Le choix dépend évidemment de la situation actuelle.
la source
définir l'indicateur comme -fno-objc-arc dans les paramètres du projet> Phases de construction> Sources de compilation
la source