google-api-objectivec-client + gtm-http-fetcher Duplicate interface definition for class GTMHTTPUploadFetcher
GoogleCodeExporter opened this issue · comments
Google Code Exporter commented
1. Add google-api-objectivec-client and gtm-http-fetcher in one project as
frameworks
2. Try to build
What is the expected output? What do you see instead?
error in GTLService.m:86
// If the upload fetcher class is available, it can be used for chunked uploads
//
// We locally declare some methods of the upload fetcher so we
// do not need to import the header, as some projects may not have it available
@interface GTLUploadFetcherClass : GTMBridgeFetcher
Error: Duplicate interface definition for class GTMHTTPUploadFetcher
This is because after preprocess it has
@interface GTMHTTPUploadFetcher : GTMHTTPFetcher in GTMHTTPUploadFetcher.h:45
and
@interface GTMHTTPUploadFetcher : GTMHTTPFetcher in GTLService.m:86
To forward declare interface and some methods it should just implement some
private category like this:
@interface GTLUploadFetcherClass (somePrivateCatogory) in GTLService.m:86
...
Anyway it should be imported (as module) in .m to allow compiler to see forward
declaration
So require to use
#if GTL_USE_SESSION_FETCHER
#import "GTMSessionUploadFetcher.h"
#else
#import "GTMHTTPUploadFetcher.h"
#endif
instead of
// If the upload fetcher class is available, it can be used for chunked uploads
//
// We locally declare some methods of the upload fetcher so we
// do not need to import the header, as some projects may not have it available
@interface GTLUploadFetcherClass : GTMBridgeFetcher
...
Original issue reported on code.google.com by serg.f...@gmail.com
on 4 Mar 2015 at 2:34
Attachments:
- [Screen Shot 2015-03-04 at 17.14.07.png](https://storage.googleapis.com/google-code-attachments/google-api-objectivec-client/issue-83/comment-0/Screen Shot 2015-03-04 at 17.14.07.png)