0

根据作为最佳实践的建议,我刚刚开始使用 Core Data 将 mogenerator 集成到应用程序项目中。我添加了以下构建脚本,并带有一个支持 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 是否存在已知问题?任何解决方案或解决方法的想法?谢谢!五

4

1 回答 1

-1

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

然后在 XCode,项目属性,编译源中,将问题文件设置为具有以下标志

fno-objc-arc

这将只为这些文件关闭 ARC。

于 2013-08-12T17:42:54.567 回答