NSInteger различия между CLI и GUI?

Я строил фреймворк и писал модульные тесты в GHUnit. Один из методов доступа моей платформы возвращает NSInteger.

Я утверждаю ожидаемое значение в тестах, как это:

GHAssertEquals(1320, request.port, @"Port number should be 1320");

При выполнении моих тестов с использованием интерфейса на основе пользовательского интерфейса AppKit это утверждение проходит.

Однако, когда я запускаю свои тесты в командной строке, они терпят неудачу с несоответствием типов, если я не приведу тип 1320 с жестким кодом как (NSInteger), Что вызывает разницу в способе интерпретации целого числа компилятором? Использует ли xcodebuild в командной строке другой тип данных для жестко запрограммированных целых чисел?

1 ответ

Решение

Вы создаете свои приложения для разных архитектур (возможно, потому что один строит универсальный, а другой строит для одной архитектуры)? NSInteger строится как 32-битный или 64-битный в зависимости от целевой архитектуры ( src), которая может отличаться от того, что компилятор выбирает для небольшой константы. Актерский состав, безусловно, проясняет ваши намерения.

Другие вопросы по тегам