NSArray índice de la última discrepancia de objeto

Below es un ejemplo que contiene dos matrices que devuelven índices diferentes para su lastObject.

NSMutableArray *ary0 = [[NSMutableArray alloc] initWithArray:[NSArray arrayWithObjects:[NSDecimalNumber decimalNumberWithString:@"2"],[NSDecimalNumber one], nil]];
NSLog(@"%d",[ary0 indexOfObject:[ary0 lastObject]]);

Logs 1, como se esperaba.

NSMutableArray *ary1 = [[NSMutableArray alloc] initWithArray:[NSArray arrayWithObjects:[NSDecimalNumber one],[NSDecimalNumber one], nil]];
NSLog(@"%d",[ary1 indexOfObject:[ary1 lastObject]]);

Logs 0.

No veo cómo el índice del último objeto en ary1 es 0, incluso si hay dos objetos idénticos en ary1. ¿Alguien puede explicar por qué tiene sentido o señalar el error muy tonto que estoy cometiendo? ¡Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta