【问题标题】:disabling ARC for .h files iphonesdk为 .h 文件 iphonesdk 禁用 ARC
【发布时间】:2012-04-11 07:34:02
【问题描述】:

我的项目使用 ARC,我想使用不兼容 ARC 的 GDATA api。 我知道如何为单个文件禁用 ARC(通过为这些文件添加 -fno-objc-arc 编译器标志)。但是在 GDataObject.h 文件中有一个结构定义为

typedef struct GDataDescriptionRecord {
    NSString *label;
    NSString *keyPath;
    enum GDataDescRecTypes reportType;
} GDataDescriptionRecord;

它会导致类似

的错误
ARC forbids object in struct or union

我怎样才能避免这个问题。 是否有任何可用的 ARC 兼容 GDATA api 或任何方式来禁用 .h 文件的 arc

【问题讨论】:

标签: iphone automatic-ref-counting gdata-api


【解决方案1】:

我会使用这样的东西:

#if __has_feature(objc_arc)
#define ARC_MEMBER __unsafe_unretained
#else
#define ARC_MEMBER 
#endif

然后,您的结构将如下所示:

typedef struct GDataDescriptionRecord {
    ARC_MEMBER NSString *label;
    ARC_MEMBER NSString *keyPath;
    enum GDataDescRecTypes reportType;
} GDataDescriptionRecord;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-03
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多