2014-10-16 35 views
19

我在很多項目中都有UIScrollViewSlidingPagesSSPullToRefresh庫,但突然間,我在這個新的iOS 8項目中出現了這些奇怪的錯誤。iOS 8預計類型

#import <Foundation/Foundation.h> 

@interface TTSlidingPageTitle : NSObject 

-(id)initWithHeaderText:(NSString*)headerText; 
-(id)initWithHeaderImage:(UIImage*)headerImage; 

//The title text to go in the nav bar 
@property(strong, nonatomic) NSString *headerText; 

//An image to use in the nav bar (if you set this, the title text will not be used) 
@property(strong, nonatomic) UIImage *headerImage; 

@end 

此行得到「預期A型」錯誤:

-(id)initWithHeaderImage:(UIImage*)headerImage; 

而此行是越來越「未知類型名稱的UIImage」錯誤:

@property(strong, nonatomic) UIImage *headerImage; 
+0

你應該確保標記一種語言。它會影響語法突出顯示並幫助他人找到問題。 – crashmstr 2014-10-16 19:49:06

+0

我的第一個猜測是,你意外地編譯OSx而不是iOS。 – 2014-10-16 19:57:38

+0

我該怎麼做? – 2014-10-16 19:58:57

回答

69

如果你檢查UIImage的docs,你會看到它在UIKit中,而不是基金會。現在的文檔都針對雨燕,這是有點討厭,但你會看到在文檔導入語句被指定爲

@import UIKit; 

,你需要在你的文件(無需基金會的頂部導入)。

有時項目在預編譯的頭文件(pch)中包含此導入語句。這應該在Build Settings-> Prefix Header中引用,否則它將不會用於編譯。

+0

他不應該這麼做 - 如果他沒有使用默認值,應該已經設置好了。 (他也不需要導入Foundation。) – 2014-10-16 20:01:32

+0

如果您在XCode中創建了一個簡單的新項目,它將在應用程序委託/ vc頭文件中爲UIKit添加一個導入。 (當然,對於基金會來說什麼也沒有,因爲就像你說的那樣,這是不需要的)。所以是的,他不需要這樣做,但他可能已經有些蹩腳的賽道了。也許他錯過了一個pch。 – 2014-10-16 20:04:04

+0

巨大的幫助,謝謝!我們有各種編譯錯誤,試圖在Swift項目中使用SSPullToRefresh,例如「UIView是未知類型」。我們添加了UIKit到我們的橋接文件,並解決了它! – 2015-02-11 19:19:25

相關問題