NSMutableDictionnary et NSMutableArray
Jekar
Membre
C est quoi la difference?
Merci
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Alors que NSDictionary (et son compagnon NSMutableDictionary, équivalent modifiable) est un dictionnaire : il est composé d'entrées auxquelles tu accèdes par des clés. En fait un dictionnaire est un ensemble (non ordonné) de paires {clé, valeur}, un peu comme ce bon vieux Robert ou Larousse, où les clés seraient les mots et les valeurs seraient leur définition.
Dans un NSDictionary, tu ne demandes pas l'élément N comme dans un tableau, mais la valeur associée à la clé K, comme dans un dictionnaire où tu demandes la définition V pour un mot K donné (mais tu ne peux pas demander le mot associé à une définition tout comme dans un NSDictionary tu ne demandes pas dans l'autre sens la clé associé à la valeur).
Donc en résumé, dans un NSArray = un tableau, les entrées sont ordonnées et indexées par des entiers. Dans un NSDictionary, elles sont non ordonnées et associées à des clés.
Pourquoi creer une propriéte et pas une variable de classe?
C est quoi la subtilité avec read-only, retain etc.... ?
Merci
Ta question mérite réellement l'ouverture d'un fil de discussion ...
Les propriétés ont été ajoutées avec l'arrivée d'Obj-C 2.0. C'est juste une nouvelle manière de déclaration qui permet d'alléger le code. Dans bien des cas on a en effet des variables qu'on vient initialiser ou lire sans besoin de traitement spécifique. En Obj-C 1.0, on déclare la variable dans la classe puis on doit implémenter chacun des accesseurs pour lire et écrire dans cette variable lorsqu'on manipule une instance de cette classe. A là longue, cela devient lourd à écrire pour pas grand chose. La notion de propriété permet d'alléger le code.
Quant-à la subtilité entre read-only, retain, etc... cela me semble assez parlant. Une propriété read-only sous-entend qu'il n'y a pas d'accesseur pour venir écrire dedans. Retain, là c'est qu'on ne fait pas une copie de l'objet mais qu'on se contente d'incrémenter son compteur Retain count (voir les bases de la gestion mémoire d'Obj-C pour plus de détails), etc
Il faut donc voir les propriétés comme une "option facultative" qui permet de remplacer l'écriture courante pour s'alléger la tâche.