我正在使用谷歌日历api,我收到两个错误。
GTMGatherInputStream.m:25:13:名为' initWithArray的多个方法:'结果
#import "GTMGatherInputStream.h"
@implementation GTMGatherInputStream
+ (NSInputStream *)streamWithArray:(NSArray *)dataArray {
return [[[self alloc] initWithArray:dataArray] autorelease]; //error on this line
}
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
我在网上到处研究过这个错误,但我什么都没发现。我正在使用GM Xcode 7.0运行GM El capitan。我已经尝试了多种不同的方法来解决它,但没有任何方法可行。我的代码不会编译。我该如何解决?
答案 0 :(得分:15)
我认为Google将在不久的将来为此实施此修复程序;与此同时,我们可以做几个黑客来解决这些问题:
更改return [[[self alloc] initWithArray:dataArray] autorelease];
到
return [[(GTMGatherInputStream*)[self alloc] initWithArray:dataArray] autorelease];
更改
#ifndef GTM_USE_SESSION_FETCHER
#define GTM_USE_SESSION_FETCHER 1
#endif
到
#ifndef GTM_USE_SESSION_FETCHER
#define GTM_USE_SESSION_FETCHER 0
#endif
我必须在定义GTM_USE_SESSION_FETCHER
的两个地方执行此操作。
最后一件事是转到GTL项目构建设置,并将Apple LLVM 7.0警告Deprecated Functions
设置为NO。通过这3个步骤,Calendar API在iOS9上成功编译。
答案 1 :(得分:0)
我还必须处理错误Comparison of address of ... not equal to null pointer is always true
这导致应用程序无法构建。必须修改GTMOAuth2ViewControllerTouch.m
的第340和1088行如,
// CGP; 9/30/15; took out "&" before kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
//if (accessibility == NULL
// && &kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly != NULL) {
if (accessibility == NULL
&& kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly != NULL) {
accessibility = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly;
}
答案 2 :(得分:0)
将[[[self alloc] initWithArray:dataArray] autorelease]
中的自我更改为GTMGatherInputStream
。它为我工作:
#import "GTMGatherInputStream.h"
@implementation GTMGatherInputStream
+ (NSInputStream *)streamWithArray:(NSArray *)dataArray {
return [[[GTMGatherInputStream alloc] initWithArray:dataArray] autorelease];
}