当它引用的代码使用 CGFloats 时,我在编译 iPhone 单元测试包时遇到问题。如果我没记错的话,CGFloat 只是一个预处理器宏,所以我猜它没有被正确替换,但由于我对这款 iPhone 斗篷相对较新,我不知道从哪里开始寻找修复它。我已经比较了应用程序目标和测试包的信息页面中的值,它们似乎都基本相同。
以下是在 Xcode 3.2.1 和 Xcode 3.1.4 中复制的步骤:
创建一个新项目>基于视图的应用程序创建一个新目标>单元测试包Ctrl+单击测试目标>获取信息将“CoreGraphics.framework”添加到链接库添加新的Objective-C类,确保两个目标都被勾选
// SomeClass.h
#import <Foundation/Foundation.h>
@interface SomeClass : NSObject {
}
-(CGFloat)doStuff;
@end
// SomeClass.m
#import "SomeClass.h"
@implementation SomeClass
-(CGFloat)doStuff {
return 9.9;
}
@end
Ctrl+单击测试目标>构建“测试”
在引用 CGFloat 的任何地方,我的构建结果窗口中都会出现以下错误:
/Users/shabbyrobe/Code/Tests/StupidCGFloat/Classes/SomeClass.h:15:0 /Users/shabbyrobe/Code/Tests/StupidCGFloat/Classes/SomeClass.h:15: 错误:在'CGFloat'之前预期')'