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