NSInteger различия между CLI и GUI?
Я строил фреймворк и писал модульные тесты в GHUnit. Один из методов доступа моей платформы возвращает NSInteger.
Я утверждаю ожидаемое значение в тестах, как это:
GHAssertEquals(1320, request.port, @"Port number should be 1320");
При выполнении моих тестов с использованием интерфейса на основе пользовательского интерфейса AppKit это утверждение проходит.
Однако, когда я запускаю свои тесты в командной строке, они терпят неудачу с несоответствием типов, если я не приведу тип 1320 с жестким кодом как (NSInteger)
, Что вызывает разницу в способе интерпретации целого числа компилятором? Использует ли xcodebuild в командной строке другой тип данных для жестко запрограммированных целых чисел?
1 ответ
Вы создаете свои приложения для разных архитектур (возможно, потому что один строит универсальный, а другой строит для одной архитектуры)? NSInteger строится как 32-битный или 64-битный в зависимости от целевой архитектуры ( src), которая может отличаться от того, что компилятор выбирает для небольшой константы. Актерский состав, безусловно, проясняет ваши намерения.