当我引用的代码使用CGFloats时,我在编译iPhone Unit Testing Bundle时遇到问题。如果我没记错的话,CGFloat只是一个预处理器宏,所以我猜它没有得到正确的替换,但由于我对这款iPhone的相对较新,我不知道从哪里开始寻找它。我已经比较了应用程序目标和测试包的Info页面中的值,它们似乎都大致相同。
以下是在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 +单击测试目标&gt;建立“测试”
在我的“构建结果”窗口中,如果引用了CGFloat,则会出现以下错误:
/Users/shabbyrobe/Code/Tests/StupidCGFloat/Classes/SomeClass.h:15:0 /Users/shabbyrobe/Code/Tests/StupidCGFloat/Classes/SomeClass.h:15: 错误:在'CGFloat'之前预期')'
答案 0 :(得分:5)
你必须:
#import <CoreGraphics/CoreGraphics.h>
仅添加框架是不够的。