Каков самый быстрый способ сравнить NSUInteger с int (например, 5) в objective-c?
каков самый быстрый способ сравнить NSUInteger с int (например, 5) в objective-c?
Background-я отмечаю, что следующая строка кода дает ошибку:
STAssertEquals([nsMutableArrayInstance count], 5, @"xxxx");
// gives Type Mismatch
Так что я спрашиваю эффективно, как исправить это, чтобы исправить ошибку...
3 ответов
NSUInteger i = 42;
int j = 5;
if (i > j) {
NSLog(@"the universe has not ended yet");
}
вместо STAssertEquals
, вы могли бы использовать STAssertTrue
:
STAssertTrue([nsMutableArrayInstance count] == 5, @"xxxx");
STAssertEquals
требует, чтобы вы сравнивали like types с like types. Поэтому добавьте " U " к числу, чтобы сделать его беззнаковым литералом:
STAssertEquals([nsMutableArrayInstance count], 5U, nil);
кроме того, можно использовать OCHamcrest сказать:
assertThat(nsMutableArrayInstance, hasCountOf(5));
использовать
STAssertEquals([nsMutableArrayInstance count], (NSUInteger)5, @"xxxx");
(NSUInteger)5
выглядит не так чисто, как 5U
, но он также будет работать правильно при компиляции для 64-битных.