1

我一直在构建一个框架并在 GHUnit 中编写单元测试。我的框架的访问器方法之一返回一个 NSInteger。

我在这样的测试中断言预期值:

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

当使用基于 AppKit UI 的前端运行我的测试时,此断言通过。

但是,当我在命令行上运行测试时,它会因类型不匹配而失败,除非我将硬编码的 1320 类型转换为(NSInteger). 是什么导致编译器解释整数的方式不同?命令行上的 xcodebuild 是否对硬编码整数使用不同的数据类型?

4

1 回答 1

2

您是否正在为不同的架构构建应用程序(可能是因为一个是通用的,一个是为一种架构构建的)?NSInteger 根据目标体系结构( src )构建为 32 位或 64 位,这可能与编译器为小常量选择的不同。演员阵容肯定会让你的意图变得清晰。

于 2010-05-27T04:01:43.183 回答