/ / Objectif C: Initialisation d'objets [dupliquer] - objectif-c

Objectif C: Initialisation d'objets [dupliquer] - objectif-c

Si je voulais créer un UIImage par exemple, quelle serait la différence entre les deux lignes de code suivantes:

UIImage *img = [UIImage imageWithCGImage:cgImage];

UIImage *img = [[UIImage alloc] initWithCGImage:cgImage];

Est-ce juste un cas de "même fin, moyens différents"?

Réponses:

5 pour la réponse № 1

imageWithCGImage: retourne une instance autoreleased alors que initWithCGImage: renvoie une image que vous devez libérer vous-même. En règle générale, vous pouvez compter sur une méthode de classe pour renvoyer un objet autoreleased alors que toute instance init La méthode retourne un objet que vous devez libérer.

Si vous utilisez du code ARC, ils font fondamentalement la même chose, mais consultez cette question connexe pour plus d'informations: Avec ARC, quoi de mieux: des initialiseurs alloc ou autorelease?