NSMutableDictionnary et NSMutableArray

JekarJekar Membre
08:47 modifié dans API AppKit #1
C est quoi la difference?

Merci

Réponses

  • AliGatorAliGator Membre, Modérateur
    08:47 modifié #2
    Eh bien NSArray (et son compagnon NSMutableArray, équivalent modifiable) est un tableau : les éléments qui sont dans le tableau sont indexés, s'il y a N éléments dans le tableau, il y a donc l'élément 0, 1, 2, 3 ... jusqu'à  N-1

    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.
  • JekarJekar Membre
    08:47 modifié #3
    Merci pour cette reponse clair :) :p
  • JekarJekar Membre
    08:47 modifié #4
    Je reouvre pas un sujet. Mais j ai du mal a comprendre les propriétés de classe.

    Pourquoi creer une propriéte et pas une variable de classe?
    C est quoi la subtilité avec read-only, retain etc.... ?

    Merci
  • Philippe49Philippe49 Membre
    08:47 modifié #5
    dans 1225555113:

    Je reouvre pas un sujet. Mais j ai du mal a comprendre les propriétés de classe.

    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 ... 
  • MalaMala Membre, Modérateur
    08:47 modifié #6
    dans 1225555113:

    Je reouvre pas un sujet. Mais j ai du mal a comprendre les propriétés de classe.

    Pourquoi creer une propriéte et pas une variable de classe?
    C est quoi la subtilité avec read-only, retain etc.... ?

    Merci


    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.







Connectez-vous ou Inscrivez-vous pour répondre.