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?

questionAnswers(3)

yourAnswerToTheQuestion