以前、同じ内容の記事を書いた。
しかし、xcode
を久しぶりにアップデートしたら下記エラーで動作しなくなった。
use of undeclared identifier 'AFNetworkActivityLogger'
use of undeclared identifier 'AFHTTPRequestOperationManager'
結構な人数の方々にストックしてもらっているので、万が一同じ現象に悩まされている人がいたらと思い対応方法を書いてみた。
##開発環境
PC: MacOS X 10.9.4
Xcode: Version 6.1.1
##対処方法
どうやら、CocoaPods
が最新のXcode6.1.1
と相性が良くないこともあるようで、少なくても私の環境では、Xcode
とCocoaPods
再インストールしても連携がうまく行かなくなった。
そこで、AFNetworkingのサイトから、ライブラリを直接ダウンロードして設定してみる。
##ヘッダファイルの配置
適切な方法であるかどうかわからないが、プロジェクトディレクトリに、Library
ディレクトリを作成し、ダウンロードしたファイルを配置する。
また、Swift
からヘッダファイルを読み込む為に、Bridging-Header.h
も作成した。
Xcodeのプロジェクトに、上記Library
ディレクトリを追加する。
その際、ヘッダファイル群がパスに読み込まれるように、[Search Paths]-[Always Search User Paths]に[Yes]を設定するのがミソ。
そして、[Swift Compiler - Code Generation]-[Objective-C Bridging Header]に、ブリッジとなるヘッダファイルのパスを設定してやる。
追加したブリッジヘッダの内容は以下。
#ifndef AFNetworkSample_Bridging_Header_h
#define AFNetworkSample_Bridging_Header_h
#import "AFNetworking.h"
#import "AFNetworkActivityLogger.h"
#endif
これで、読み込めずに動作しなくなったAFNetworking
関連のクラスが利用できるようになる。
ハマりどころは、まさかのxcode6.1.1
で、CocoaPods
が連携できないことであった。
少なくても私の環境だけの問題かもしれないが・・・。
Lovely Swift!!!