Comparar NSDictionaries contendo NSStrings
Eu tenho doisNSDictionaries
contendoNSStrings
. Para comparar estes dois dicionários eu usoisEqualToDictionary:
método. A documentação sobreisEqualToDictionary:
diz
"Dois dicionários têm conteúdos iguais se cada um deles possuir o mesmo número de entradas e, para uma determinada tecla, os objetos de valor correspondentes em cada dicionário satisfazem o teste isEqual:".
Então, minhas cordas são comparadas porisEqual:
método.
A questão é:
Como é queisEqual:
trabalhar para oNSString
?
UsaisEqual:
deNSObject
? Eu li issoisEqual
deNSObject
apenas compara endereços, usando==
. Para provar ou refutar essa ideia, escrevi um exemplo:
NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];
oresult
éYES
, os endereços destr1
estr2
são diferentes embora.
Então, ou ele não usaisEqual:
deNSObject
(o quê)? ouNSObject
'sisEqual:
faz algo mais complicado do que verificar a igualdade de endereços.
Alguém sabe como isso realmente funciona?