禁用ARC for .h文件iphonesdk

Joh*_*tty 2 iphone gdata-api automatic-ref-counting

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

typedef struct GDataDescriptionRecord {
    NSString *label;
    NSString *keyPath;
    enum GDataDescRecTypes reportType;
} GDataDescriptionRecord;
Run Code Online (Sandbox Code Playgroud)

它会导致错误

ARC forbids object in struct or union
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*III 6

我会用这样的东西:

#if __has_feature(objc_arc)
#define ARC_MEMBER __unsafe_unretained
#else
#define ARC_MEMBER 
#endif
Run Code Online (Sandbox Code Playgroud)

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

typedef struct GDataDescriptionRecord {
    ARC_MEMBER NSString *label;
    ARC_MEMBER NSString *keyPath;
    enum GDataDescRecTypes reportType;
} GDataDescriptionRecord;
Run Code Online (Sandbox Code Playgroud)