XCode 4.6中的Mogenerator和ARC

时间:2013-08-12 17:19:12

标签: ios objective-c xcode core-data mogenerator

我刚刚开始将mogenerator集成到带有Core Data的应用程序项目中,根据建议作为最佳实践。我添加了以下构建脚本,其中包含一个支持ARC的标志。

mogenerator -m FavesDataModel.xcdatamodeld/FavesDataModel.xcdatamodel --template-var arc=true

该脚本成功构建了所有必需的类和子类。那时,我将所有生成的文件复制到我的项目中。最初,我得到了一个干净的成功构建。但是,在尝试其他构建时(不进行任何更改),它会因以下ARC错误而失败:

ARC forbids Objective-C objects in structs or unions

使用下划线生成的文件中会出现错误。有趣的是,当构建脚本按如下方式构建文件时:

extern const struct FavoriteAttributes {
    __unsafe_unretained NSString *maxCFS;
    __unsafe_unretained NSString *maxFeet;
    __unsafe_unretained NSString *minCFS;
    __unsafe_unretained NSString *minFeet;
    __unsafe_unretained NSString *stationIdentifier;
    __unsafe_unretained NSString *stationRealName;
    __unsafe_unretained NSString *stationState;
} FavoriteAttributes;

但是,在成功构建之后,XCode会删除__unsafe_unretained属性。

启用ARC时使用mogenerator是否存在已知问题?任何解决方案或解决方法的想法?谢谢! V

1 个答案:

答案 0 :(得分:-1)

尝试从构建脚本中删除--template-var arc = true。

然后在XCode,Project Properties,Compile sources中,将问题文件设置为具有以下标志

fno-objc-arc

这将仅关闭那些文件的ARC。