comptage de référence automatique, venir dans iOS 5, fera efficacement tout pointeur vers un acte d'objet c objectif comme un pointeur intelligent. Les appels retenus/relâchés seront synthétisés par le compilateur sur assign et deallocation, sauf si vous déclarez explicitement qu'une référence est faible, auquel cas ils seront automatiquement remis à zéro lorsque l'objet est désalloué.
Mon conseil est d'attendre quelques mois pour cela.Vous pourriez être en mesure de mettre en place quelque chose de similaire entre-temps, mais je recommanderais de ne pas le faire. D'une part, ça va être moche. Exemple:
smart_ptr<id> array = make_smart_ptr([NSMutableArray array]);
NSUInteger count = [array count]; // won't work.
count = [array.get() count]; // works, but yuck.
[array.get() setArray: anotherArray.get()]; // even more yuck.
De plus, si vos en-têtes sont pleines de classes C++, vous devrez compiler l'ensemble de votre projet en Objective-C++, ce qui peut vous causer des problèmes comme objectif-C++ est pas 100% compatible avec code objectif-c, et tous les frameworks tiers ne fonctionneront pas correctement avec. Et oubliez de partager votre code avec quelqu'un d'autre.
Il peut être intéressant de faire quelque chose comme ça, mais vous ne voudrez pas l'utiliser. Et faites attention à la tentation de recréer vos morceaux préférés de C++ en Objective-C. Les langues sont très différentes, et vous pourriez passer beaucoup de temps à le faire, ce qui est le temps passé à apprendre toutes les choses intéressantes que vous pouvez faire en Objective-C que vous ne pouvez pas faire en C++.
Je recommande vivement de ne pas faire cela, et d'apprendre à la place la façon appropriée de gérer la mémoire via Objective-C/Cocoa. La raison en est que Cocoa-Touch pousse et affiche des vues (qui conservent et libèrent du code) et ne respectera pas votre code. –
Objectif C++? Je ne pense pas que ce soit réel. – nmichaels
Objective-C++ existe: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html#//apple_ref/doc/uid/TP30001163-CH10-SW1 – JBRWilkinson