2016-06-01 6 views
1

Ich habe eine Quelldatei, eigentlich ist es eine Google API-Bibliothek.Warum importieren Sie die .m-Datei?

Es hat diesen Code auf 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" 

jedoch versuchen, es zu bauen, die Ergebnisse auf doppelte Symbole auf GTLCommon_Sources und GTLJSONParser. Ich habe versucht, die Quelldatei zu anstelle von #import "Utilities/GTLJSONParser.m" zu ändern, und der doppelte Symbolfehler verschwindet.

Kann jemand mitteilen, warum diese Bibliothek eine .m-Datei importiert? Während AFAIK importieren wir immer die .h-Datei.

+0

Haben Sie in Ihrem Projekt gesucht, dass Sie nur eine Kopie dieser beiden Dateien haben? – NeverHopeless

Antwort

2

Es ist nur eine bequeme Möglichkeit, alle Quelldateien zu erstellen, ohne dass alle in Ihrem Projekt enthalten sind. Siehe the documentation.

Anstatt mit dem GTL-Framework zu verknüpfen, können Sie die GTL-Bibliothek Quellen direkt in Ihr eigenes Projekt kompilieren. Suchen Sie dazu die Dateien GTLCommon_Sources.m und GTLCommon_Networking.m der Bibliothek , und ziehen Sie die Dateien in das Projektfenster.

Dann die Bibliothek des Quellordner in den Header-Suchpfade Eintrag hinzufügen Ihrer Buildeinstellungen des Projekts: Source, Quelle/Objekte, Quelle/Utilities, Deps/GTM-session-Abholer/Quelle, Deps/GTM-oauth2/Quelle, Deps/gtm-oauth2/Quelle/Touch (oder Deps/gtm-oauth2/Quelle/Mac).

Damit das funktioniert, fügen nicht anderen der anderen Quellen (GTLBatchQuery.m, etc.) zu einem Projekt.

+0

Danke zpasternack! Ich habe jedoch ein anderes Problem gefunden, wenn Sie hier helfen können http://stackoverflow.com/questions/37563249/google-api-gtmoauth2viewcontrollertouch-not-found :) – Rendy

Verwandte Themen