2013-09-30 13 views
5

私はASIHttpRequestからAFNetworkingに変換しようとしていますが、クラスの次の行に "宣言されていない識別子AFURLSessionManagerの使用"エラーがあるようです。AFNetworkingヘッダーが含まれています

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; 

私は自分のヘッダに以下が含まれている:それは本当に明白なものでなければならない

#import "AFNetworking.h" 
#import "AFURLSessionManager.h" 

が、今、悪い脳のおならを持ちます。

+0

フレームワークをどのようにインポートしましたか?あなたはCocoaPodを使用していますか? –

+0

実際にAFnetworkingフォルダをプロジェクトにドラッグしました。http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_afnetworking/ –

+0

... AFNetworkingをリポジトリからダウンロードしましたか?チュートリアルサイトのリンク? – lxt

答えて

5

挙動は単にAFURLSessionManager.h

#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) 

AFURLSessionManagerにコード行によって説明さは、iOS 7(およびOSX 10.9)から入手可能である、NSURLSessionを利用する上で。

iOS 6をターゲットにしている場合、AFURLSessionManagerは使用できず、コンパイル時に削除されます。だからこそあなたは誤りを得る。

最小デプロイメントターゲットとしてiOS 7を設定すると、必要に応じてコンパイルエラーが修正されます。私の提案、言っ


は、AFNetworkingとして、管理サードパーティの依存関係にCocoaPodsを使用することです。

AFNetworking 2.0はモジュラーフレームワークです。つまり、必要に応じて使用するモジュールを選択できます。コアはiOS 6をサポートしていますが、一部のモジュールでは、が所属するNSURLSessionモジュールなど、iOS 7のみをサポートしています。

CocoaPods subspecsを使用することによってモジュール性が達成されます。 AFNetworkingNSURLSessionモジュールをインポートするためには、あなただけのあなたはまだiOSの6をターゲットにすることができ

platform :ios, '7.0' 

pod 'AFNetworking',    '~> 2.0' 
pod 'AFNetworking/NSURLSession', '~> 2.0' 

ような何かをする必要がありますが、CocoaPodsのドキュメントで指定されますが、互換性のないサブモジュールを取得することはありません。

サブスペックは、親スペックのプラットフォームを制限することができます。この場合、podfileのターゲットがそれをサポートしている場合にのみ、親仕様によって継承されます。

+0

AFNetworkingをインストールするためにcocoapodsを使って、ビルド設定のヘッダ検索パスに "$ {PODS_ROOT}/BuildHeaders"を追加しなければならなかったのを修正しました。 –

+0

実際にcocoapodsを使用すると、自動的に設定されたワークスペースが生成されます。ワークスペースを開いて、プロジェクトの代わりに使用するだけです。 –

関連する問題