O método NSArray containsObject

Eu tenho uma pergunta simples sobre a codificação xcode, mas não sei por que as coisas não estão funcionando como eu acho. Eu tenho uma matriz de objetos (objetos personalizados). Eu só quero verificar se este está dentro da matriz. Eu usei o seguinte código:

NSArray *collection = [[NSArray alloc] initWithObjects:A, B, C, nil]; //A, B, C are custom "Item" objects
Item *tempItem = [[Item alloc] initWithLength:1 width:2 height:3];  //3 instance variables in "Item" objects
if([collection containsObject:tempItem]) {
    NSLog(@"collection contains this item");
}

Suponho que a verificação acima me dará um resultado positivo, mas não é. Além disso, verifiquei se os objetos criados são os mesmos.

NSLog(@"L:%i W:%i H:%i", itemToCheck.length, itemToCheck.width, itemToCheck.height);
for (int i = 0, i < [collection count], i++) {
    Item *itemInArray = [collection objectAtIndex:i];
    NSLog(@"collection contains L:%i W:%i H:%i", itemInArray.length, itemInArray.width, itemInArrayheight);
}

No console, é isso que eu tenho:

L:1 W:2 H:3
collection contains L:0 W:0 H:0
collection contains L:1 W:2 H:3
collection contains L:6 W:8 H:2

Obviamente otempItem está dentro docollection matriz, mas nada aparece quando eu usocontainsObject: para verificar. Alguém poderia me dar alguma orientação sobre qual parte estou errada? Muito obrigado!

questionAnswers(1)

yourAnswerToTheQuestion