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");