CGFloat导致iPhone Unit Testing Bundle失败

时间:2010-02-23 01:52:29

标签: iphone unit-testing xcode xcode3.2

当我引用的代码使用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'之前预期')'

1 个答案:

答案 0 :(得分:5)

你必须:

#import <CoreGraphics/CoreGraphics.h>

仅添加框架是不够的。