Objective-C - Comparar enteros que no funcionan como se esperaba

Así que mi problema es este:

Estoy recibiendo una cadena JSON de toda la red. Cuando se decodifica (utilizando bibliotecas SBJSON), se convierte en un NSDictionary que DEBERÍA contener un número de algún tipo para la clave 'userid'. Digo 'debería' porque cuando comparo el valor con un int, o un NSINTEGER o NSNumber, nunca se evalúa correctamente.

Aquí está la comparación en código:

NSDictionary *userDictionary = [userInfo objectAtIndex:indexPath.row];

if ([userDictionary objectForKey:@"userid"] == -1) {
 //Do stuff
}

El valor dentro del diccionario con el que estoy probando es -1. Cuando lo imprimo en la consola usando NSLog, incluso muestra que es -1. Sin embargo, cuando lo comparo con -1 en la declaración 'if', se evalúa como falso cuando debería ser cierto. Incluso he intentado compararlo con [NSNumber numberWithInt: -1], y aún se evalúa como falso.

¿Qué estoy haciendo mal? ¡Gracias de antemano por tu ayuda!

Respuestas a la pregunta(1)

Su respuesta a la pregunta