Work Records

日々の作業記録です。ソフトウェアエンジニアリング全般から、趣味の話まで。

UIImageを使おうと思ったら、expected a typeというエラーが出た

小ネタの割にはまった

こんな感じでメソッドを定義したらexpected a typeというエラーが出た。

ImageUtilsというクラスのヘッダファイル[ImageUtils.h]

#import <Foundation/Foundation.h>

@interface ImageUtils : NSObject

+ (UIImage *) makeThumbNail:(UIImage *)orgImage;    <<<ここで expected a typeというエラー

@end

大抵はimportの循環参照らしいが

このエラーはimportの循環参照が引き起こすらしいが、新しいアプリを書きはじめで怪しい部分などない。ググりまくる。

UIImageはUIKitの中にあるらしい

ちゃんとドキュメント読めと。。。
NSObjectを継承したクラスを作るとデフォルトではFoundationがimportされているが、UIImageはUIKitの方にあるらしい。

#import <UIKit/UIKit.h>

に変えて解決。めでたし。

いやいや、めでたしじゃない。昔のprojectはUIKitなんてimportしてなくてもUIImageつかえたぞ

そう、xcode5時代から作っていたようなprojectではいちいちUIKitをimportしなくてもUIImageを使えていた。
色々調べた結果、pchファイルがxcode6から自動的に作られなくなった事が原因ぽい。
このため今まではあらかじめ読み込まれていたUIKitが読み込まれていなかった。
pchを作る方法はこの辺りが参考になりそう。
Xcode6 PCHファイルがないので追加する - あぷすた - iPhoneとWebとプログラミングと



ということで、めでたし。

[asin:4861009480:detail]