谷歌Api错误"多个方法名为'initWithArray:'找到"

Sam*_*am 11 api objective-c google-api swift xcode7

我正在使用谷歌日历API,我收到两个错误.

  1. GTMGatherInputStream.m:25:13:找到名为'initWithArray:'的多个方法

    #import "GTMGatherInputStream.h"
    @implementation GTMGatherInputStream
    + (NSInputStream *)streamWithArray:(NSArray *)dataArray {
        return [[[self alloc] initWithArray:dataArray] autorelease]; //error on this line
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. GTMOAuth2Authentication.h:31:11:找不到'GTMSessionFetcher.h'文件

    #if GTM_USE_SESSION_FETCHER
    #import "GTMSessionFetcher.h" //GTMSessionFetcher.h file not found error
    #else
    #import "GTMHTTPFetcher.h"
    #endif  // GTM_USE_SESSION_FETCHER
    
    Run Code Online (Sandbox Code Playgroud)

我在网上到处研究过这个错误,但我什么都没发现.我正在使用GM Xcode 7.0运行GM El capitan.我已经尝试了多种不同的方法来解决它,但没有任何方法可行.我的代码不会编译.我该如何解决?

Pet*_*ter 15

我认为谷歌将在不久的将来为此实施此修复程序; 与此同时,我们可以做几个黑客来解决这些问题:

  1. 更改 return [[[self alloc] initWithArray:dataArray] autorelease];

    return [[(GTMGatherInputStream*)[self alloc] initWithArray:dataArray] autorelease];

  2. 更改

    #ifndef GTM_USE_SESSION_FETCHER
    #define GTM_USE_SESSION_FETCHER 1
    #endif
    
    Run Code Online (Sandbox Code Playgroud)

    #ifndef GTM_USE_SESSION_FETCHER
    #define GTM_USE_SESSION_FETCHER 0
    #endif
    
    Run Code Online (Sandbox Code Playgroud)

我必须在GTM_USE_SESSION_FETCHER定义的两个地方这样做.

最后一件事是,转到GTL项目构建设置,并将Apple LLVM 7.0警告设置Deprecated Functions为NO.通过这3个步骤,Calendar API在iOS9上成功编译.