class method + setLoggingEnabled:not found

时间:2014-07-12 18:17:08

标签: ios objective-c google-cloud-endpoints

我在iOS上使用Google Cloud Endpoint。我正在尝试按https://developers.google.com/appengine/docs/java/endpoints/consume_ios#Java_Creating_the_service_object处的说明创建服务对象。对于代码行[GTMHTTPFetcher setLoggingEnabled:YES];,xCode显示警告

class method '+setLoggingEnabled:' not found (return type defaults to 'id')

但当我查看.h GTMHTTPFetcher文件时,我实际上可以看到该方法为

#if STRIP_GTM_FETCH_LOGGING
// if logging is stripped, provide a stub for the main method
// for controlling logging
+ (void)setLoggingEnabled:(BOOL)flag;
#endif // STRIP_GTM_FETCH_LOGGING

并在.m文件中看起来像这样

#if STRIP_GTM_FETCH_LOGGING
+ (void)setLoggingEnabled:(BOOL)flag {
}
#endif // STRIP_GTM_FETCH_LOGGING

此类课程由Google生成,因此......应该可以使用(?)

3 个答案:

答案 0 :(得分:1)

设置如下:

#define STRIP_GTM_FETCH_LOGGING 1 

答案 1 :(得分:1)

在包含以下代码行的文件中:

[GTMHTTPFetcher setLoggingEnabled:YES];

添加以下输入:

#import "GTMHTTPFetcherLogging.h"

答案 2 :(得分:0)

我刚遇到同样的问题。

就我而言,这是因为我在使用Google+ iOS SDK中的GTMHTTPFetcher:

Adding required files to your iOS project(第2点)

我已经按照描述设置了标题信息(为简单起见,下面复制):

  1. 如果您使用的是Google+ iOS SDK,请按如下方式设置Xcode项目:
    1. 在Xcode项目中,转到目标的设置页面。
    2. Build Settings标签中,将以下项目添加到Header Search Paths
      GOOGLE_PLUS_SDK_DIRECTORY / GoogleOpenSource.framework / Headers where GOOGLE_PLUS_SDK_DIRECTORY是您安装的目录 Google+ iOS SDK。
  2. (我的项目中有Google+ iOS SDK,所以我使用的是:$(PROJECT_DIR)/MyProject/External/GoogleOpenSource.framework/Headers)

    但要查看setLoggingEnabled方法,您需要将-ObjC -all_load添加到Other Linker Flags