2

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

4

1 回答 1

5

你必须有:

#import <CoreGraphics/CoreGraphics.h>

仅仅添加框架是不够的。

于 2010-02-23T02:39:22.630 回答