tutorial objective mac kits developer objective-c xcode xcode4 ocunit

objective c - objective - ¿Cuál es la forma más rápida de comparar un NSUInteger con un int(por ejemplo, 5) en object-c?



xcode reference (3)

Utilizar

STAssertEquals([nsMutableArrayInstance count], (NSUInteger)5, @"xxxx");

(NSUInteger)5 no se ve tan limpio como 5U pero también funcionará correctamente cuando se compile para 64 bits.

¿Cuál es la forma más rápida de comparar un NSUInteger con un int (por ejemplo, 5) en object-c?

Fondo: estoy notando que la siguiente línea de código da un error:

STAssertEquals([nsMutableArrayInstance count], 5, @"xxxx"); // gives Type Mismatch

Entonces, lo que estoy preguntando efectivamente es cómo corregir esto para corregir el error ...


STAssertEquals requiere que compare tipos similares con tipos similares. Así que agregue "U" al número para convertirlo en un literal sin signo:

STAssertEquals([nsMutableArrayInstance count], 5U, nil);

Alternativamente, podrías usar OCHamcrest para decir:

assertThat(nsMutableArrayInstance, hasCountOf(5));


NSUInteger i = 42; int j = 5; if (i > j) { NSLog(@"the universe has not ended yet"); }

En lugar de usar STAssertEquals , puede usar STAssertTrue :

STAssertTrue([nsMutableArrayInstance count] == 5, @"xxxx");