J'ai deux "Deux dictionnaires ont un contenu égal si elles contiennent chacune du même nombre d'entrées et, pour une clé donnée, les objets de valeur correspondants dans chaque dictionnaire satisfont à l'ISEAR: test . " p> Donc, mes chaînes sont comparées par La question est: utilise-t-il le résultat Est-ce que quelqu'un sait comment ça marche vraiment? p> p> nsdictionnaires code> contenant
nstrings code>. Pour comparer ces deux dictionnaires, j'utilise
isequaltoDictionardiction: code> méthode. La documentation sur
isequaltodidiction: code> dit
isequal: code> méthode. p>
Comment iSequal: code> fonctionne pour le
nstring code>? P>
isequal: code> à partir de
nsobject code >?
J'ai lu que
iSequal code> à partir de
NsObject code> compare simplement les adresses, à l'aide de
== code>.
Pour prouver ou réfuter cette idée, j'ai écrit un échantillon: p>
est code> est
oui code>, les adresses de
STR1 code> et
str2 code> sont différents cependant.
donc, soit il n'utilise pas iSequal: code> à partir de
nsobject code> (quoi que?) ou
NsObject code> 'S
ISEQ: code> fait quelque chose de plus compliqué alors de vérifier l'égalité des adresses. P>
3 Réponses :
nstring code> remplace
isequal: code> Pour comparer correctement les chaînes, vous êtes donc parfaitement amende pour comparer les dictionnaires de cette façon. P>
Merci. Y a-t-il un moyen de s'en assurer? Les en-têtes et la documentation pour Nstring ne dit rien.
J'ai trouvé cela, ce fait est mentionné dans "Programmation de l'Objective-C: le Guide de Ranch Big Nerd".
@Anastasia également, il est très indirectement mentionné dans les docs sous isequaltostring: code>
qui dit qu'il est identique à code> ISEQ: code> quand les deux sont cordes, mais plus vite.
IsequaltoDictionarictionnaire compare tous les objets avec Isequal.
Dans mon cas, cela ne fonctionne pas avec l'objet Nstring dans mon dictionnaire. J'ai donc fait une solution de contournement très simple. Je comparais la description des deux dictionnaires. Cela fonctionne avec des dictionnaires contenant nstring et nsnumber et whit tous les objets contenant une méthode de description. P>
NSString *a = dictionary.description;
NSString *b = assertation.description;
BOOL test = [a isEqualToString:b];
NSDictionary code> n'est pas commandé, je pense.
Pourquoi ne pouvez-vous pas utiliser la méthode Isequaltostring? trop facile?
@Sambudda Ce n'est pas moi, c'est Nsdictionary utilise Isequal: comparer ses éléments.