CLI与GUI之间的NSInteger差异?

时间:2010-05-27 03:45:51

标签: objective-c cocoa types nsinteger

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

我在测试中断言期望值如下:

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

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

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

1 个答案:

答案 0 :(得分:2)

您是否正在为不同的架构构建应用程序(可能是因为一个正在构建通用而一个正在为一个架构构建)? NSInteger构建为32位或64位,具体取决于目标体系结构(src),这可能与编译器选择的小常量不同。演员当然会让你的意图明确。