2012-01-13 4 views
0
  1. Quel est le besoin de conserver un NSObject dans l'application ios? Quelle est la différence entre retainCount==1, retainCount=2, ..... etc.Quelques doutes sur la mémoire-retenir dans ios applicato?

  2. Comment les propriétés peuvent gérer la rétention et la libération de la variable d'instance?

  3. Lorsque je suis retenue/relâche NSObject, le nombre de retenue augmente/diminue de un, que se passe-t-il exactement dans la mémoire?

+0

Veuillez lire ceci à propos de retainCount: http://www.friday.com/bbum/2011/12/ 18/retaincount-is-inutiles/ – sosborn

+0

Merci à beaucoup, c'est très beau document ... –

Répondre

-1
  1. Fidéliser un objet indique que vous prenez possession de cet objet. Vous devez donc le relâcher une fois que vous avez terminé. RetainCount = 1 indique qu'il est fortement référencé à partir d'un endroit.
  2. Si retainCount = 2, il est fortement référencé à partir de deux endroits.
  3. Les propriétés, selon qu'il s'agit d'une propriété de conservation, de copie ou d'affectation, traitent différemment la gestion de la mémoire
  4. Le nombre de retenues indique uniquement le nombre de références de chaîne pour l'objet. Comme ling étant supérieur à 0, l'objet n'est pas retiré de la mémoire. Une fois qu'il devient 0, l'obj est supprimé de la mémoire (dealloc d'objet THT est appelé)

EDIT:

  1. Si elle est de conserver la propriété, chaque fois que vous définissez une propriété conserver en utilisant le '.', puis l'ancienne valeur est libérée, la nouvelle valeur est conservée et affectée à la propriété. La même chose se produit avec la copie, juste que la nouvelle valeur est envoyée une copie au lieu de retenir. S'il s'agit d'une propriété assign, la nouvelle valeur est directement affectée à la propriété (pas de libération, pas de conservation)
+0

Si le nombre de retenue augmente/diminue de un changement de mémoire? –

+0

si vous développez le deuxième point. C'est une référence forte d'un endroit ....? –

+0

Aucun changement de mémoire tant que le nombre de rétention est supérieur à 0. –

Questions connexes