2016-06-01 13 views
1

私はソースファイルを持っていますが、実際はGoogle APIライブラリです。.mファイルをインポートするのはなぜですか?

それはGTLCommon_Sources.m上でこのコードを持っています

#if defined(__has_feature) && __has_feature(objc_arc) 
#error "This file needs to be compiled with ARC disabled." 
#endif 

#import "Objects/GTLBatchQuery.m" 
#import "Objects/GTLBatchResult.m" 
#import "Objects/GTLDateTime.m" 
#import "Objects/GTLErrorObject.m" 
#import "Objects/GTLObject.m" 
#import "Objects/GTLQuery.m" 
#import "Objects/GTLRuntimeCommon.m" 
#import "Objects/GTLService.m" 
#import "Objects/GTLUploadParameters.m" 

#import "Utilities/GTLBase64.m" 
#import "Utilities/GTLFramework.m" 
#import "Utilities/GTLJSONParser.m" 
#import "Utilities/GTLUtilities.m" 

しかし、それを構築しようと、GTLCommon_SourcesGTLJSONParserの重複シンボルの結果。私は#import "Utilities/GTLJSONParser.m"の代わりに#import "Utilities/GTLJSONParser.h"にソースファイルを変更しようとしましたが、重複するシンボルのエラーは消えてしまいます。

誰でもこのライブラリが.mファイルをインポートする理由を教えていただけますか? AFAIKの間、私たちは常に.hファイルをインポートします。

+0

この2つのファイルのコピーが1つだけあることをプロジェクトで検索しましたか? – NeverHopeless

答えて

2

すべてのソースファイルをプロジェクトに含めることなくすべてのソースファイルを構築するのに便利な方法です。 the documentationを参照してください。

GTLフレームワークにリンクするのではなく、GTLライブラリ ソースを自分のプロジェクトに直接コンパイルできます。これを行うには、ライブラリの GTLCommon_Sources.mファイルとGTLCommon_Networking.mファイルを見つけ、 ファイルをプロジェクトのウィンドウにドラッグします。

次に、あなたのプロジェクトのビルド設定のヘッダ検索パスエントリ にライブラリのソースフォルダを追加します。ソース、ソース/オブジェクト、 ソース/ユーティリティ、DEPS/GTM-セッションフェッ/ソース、 のDEP/GTM-のOAuth2/Source、Deps/gtm-oauth2/Source/Touch(または Deps/gtm-oauth2/Source/Mac)を選択します。仕事にそのために

は、 ないは、プロジェクトに他のソース( GTLBatchQuery.mなど)の他に追加します。

+0

ありがとうzpasternack!しかし、あなたがここで手伝ってもらえると、別の問題が見つかりましたhttp://stackoverflow.com/questions/37563249/google-api-gtmoauth2viewcontrollertouch-not-found :) – Rendy

関連する問題