ios - GData静态库:使用-fno-objc-arc从ARC排除文件?

标签 ios gdata-api automatic-ref-counting

我在使用ARC的应用程序中使用GData静态库。 Google的指令说将头文件从库链接到项目目标。
问题是当我这样做时,由于GData库与ARC不兼容,我遇到了编译器错误。
Google声明:

ARC相容性
将库源文件直接编译到使用ARC的项目中时,必须专门针对库源禁用ARC。
要为Xcode 4中的源文件禁用ARC,请在Xcode中选择项目和目标。在目标“构建阶段”选项卡下,展开“编译源”构建阶段,选择库源文件,然后按Enter打开编辑字段,然后键入-fno-objc-arc作为这些文件的编译器标志。

(reference)
但是由于我只有头文件,因此无法在应用程序目标中使用此标志。

最佳答案

好吧,我问了一下,发现它在十分钟后就消失了。任何可以帮助某人的方法:

  • 问题仅在于.h文件,Goole备注仅适用于您将库嵌入为静态库的情况。
  • 在有人向Google报告问题后,他们添加了新的宏来解决该问题,方法如下:

  • 在头文件中搜索名为:GDataDefines.h的文件
    并在其中添加以下代码:
    //
    // Simple macros to allow building headers for non-ARC files
    // into ARC apps
    //
    
    #ifndef GDATA_REQUIRES_ARC
    #if defined(__clang__)
    #if __has_feature(objc_arc)
    #define GDATA_REQUIRES_ARC 1
    #endif
    #endif
    #endif
    
    #if GDATA_REQUIRES_ARC
    #define GDATA_UNSAFE_UNRETAINED __unsafe_unretained
    #else
    #define GDATA_UNSAFE_UNRETAINED
    #endif
    

    然后在GDataObject.h中导致ARC错误

    将GDataDescriptionRecord结构更改为
       typedef struct GDataDescriptionRecord {
           NSString GDATA_UNSAFE_UNRETAINED *label;
           NSString GDATA_UNSAFE_UNRETAINED  *keyPath;
           GDataDescRecTypes reportType;
       } GDataDescriptionRecord;
    


       __weak GDataObject *parent_;  // parent in tree of GData objects
    


       GDataObject GDATA_UNSAFE_UNRETAINED *parent_;
    

    这是Google更新的链接:
    http://code.google.com/p/gdata-objectivec-client/source/detail?r=712

    而已。

    希望对别人有帮助

    香妮

    关于ios - GData静态库:使用-fno-objc-arc从ARC排除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300030/

    相关文章:

    ios - Swift MapView -> 以编程方式启动 "didSelectAnnotation"与用手指点击注释不同

    python - 带有 Python 的 Google 文档 API

    java - Google 电子表格中的 appengine 问题

    iOS - 创建像照片应用程序一样的照片查看器

    iphone - 主要功能上的 Sigabrt

    ios - 从 plist 文件保存和加载数字

    ios - 如何添加约束以将 tableview 固定到其父底部

    google-api - Google+ 有公共(public) API 吗?

    core-graphics - 在 ARC 上使用 __bridge 进行 CoreGraphics 渐变时应用程序崩溃

    objective-c - 如何为创建但未分配给任何指针的对象管理内存?