2010-02-23 63 views
2

我有問題獲取iPhone單元測試捆綁編譯時,它引用的代碼使用CGFloats。如果我沒有記錯,CGFloat只是一個預處理器宏,所以我猜測它沒有被正確地取代,但由於我對這款iPhone手機相對較新,我不知道從哪裏開始尋找解決方案。我已經在Info頁面中比較了應用程序目標和測試包的值,並且它們看起來大致相同。CGFloat導致iPhone單元測試捆綁失敗生成

這裏是在Xcode 3.2.1和3.1.4的Xcode複製的步驟:

創建一個新項目>查看基於應用程序 創建新的目標>單元測試包 按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: error: expected ')' before 'CGFloat'

回答

5

你必須有:

#import <CoreGraphics/CoreGraphics.h> 

只需添加的框架是不夠的。