La gestion des collections de tuples en Objective-C
Je suis assez nouveau à l'Objective-C et je me demandais quelle est la meilleure façon de gérer des collections de tuples était. En C je voudrais utiliser un tableau 2D ou un struct.
Devrais-je être la création d'objets à contenir ces n-uplets? Il semble exagéré juste pour le tri des listes ou n'est-il pas vrai de charge supplémentaire généré par l'initialisation des objets?
Vous devez vous connecter pour publier un commentaire.
Il ya certainement des frais généraux dans la génération des objets. Pour un petit nombre d'objets, puis à l'aide ObjC des structures de données est toujours appropriée. Si vous avez un grand nombre de tuples, je voudrais gérer dans un C tableau de structures. Rappelez-vous, Objective-C est vraiment juste C. Il est approprié et courant d'utiliser le C constructions en Objective-C (jusqu'à un point; de l'apprentissage où se trouve ce point représente une étape importante pour devenir un bon Objectif-développeur C).
Généralement pour ce type de structure de données, je serais probablement créer un seul Objectif-C objet qui a géré l'ensemble de la collection. Afin que les appelants externes serait Objective-C interface, mais l'interne, les données seraient stockées dans une plus efficace C de la structure.
Si il est courant d'accéder à un grand nombre de tuples vite, mon objet de collection sera probablement "obtenir" des méthodes similaires à
[NSArray getObjects:range:]
. ObjC méthodes qui commencent par "get" indiquent que le premier paramètre est un pointeur qui sera remplacée par la méthode. Ceci est communément utilisé pour la haute performance C-comme l'accès à des choses géré par un ObjC objet.Ce type de structure de données est exactement la façon dont ObjC développeurs de fusion de l'élégance et de la maintenabilité des ObjC avec la performance et la simplicité de C.
Je pense que vous aurez à régler pour un NSArray de NSArray objets, ou peut-être un NSArray de NSDictionary objets. Vous pouvez toujours passer votre propre classe, ou de le faire de la manière que vous le feriez dans C.
Il ya un couple de différentes façons vous pouvez aller à ce sujet: