2009-10-30 7 views
0

Je suis juste curieux de savoir s'il existe un moyen d'échanger les deux piqûres dans cet exemple?isEqualToString est ce que les éléments peuvent être échangés?

// This works 
for(eachArtist in artistCollection) { 
if([objFirName isEqualToString: [eachArtist firName]]) NSLog(@"DELETE ...."); 
} 

Ce que je voulais faire était (voir ci-dessous) peut-il être fait ou est ce qui précède la seule façon?

[eachArtist firName isEqualToString: objFirName] 

eachArtist.firName est un NSString dans un tableau d'objets, objFirName est un NSString de vanille.

gary

+0

Cette deuxième ligne n'est pas correcte. Objective-C qu'est-ce que tu veux dire [[eachArtist firName] isEqualToString: objFirName] – Mark

+0

Mark, c'est ce que je cherchais après, j'étais un muppet, j'oubliai de mettre entre parenthèses le premier argument. Désolé, j'essaie toujours de comprendre Objective-C. – fuzzygoat

Répondre

0

Si vous avez synthétisé la propriété firName dans la mise en œuvre Artist, les deux approches sont équivalentes.

C'est:

[eachArtist firName] 

est le même que

eachArtist.firName 

Si le @property est @synthesize -d Artist.m et readwrite ou readonly dans Artist.h.

Étant donné que vous exécutez un prédicat isEqualToString et non un prédicat inférieur ou supérieur, l'ordre dans lequel les éléments se trouvent dans le prédicat n'a pas d'importance.

En termes mathématiques, A = B si et seulement si B = A, dans le but de comparer des chaînes.

+0

Chuck C'est exactement ce que je voulais. @Alex Reynolds, merci beaucoup, la seule raison de vouloir échanger les positions était de faire mieux lire le code. – fuzzygoat

Questions connexes