根据作为最佳实践的建议,我刚刚开始使用 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 是否存在已知问题?任何解决方案或解决方法的想法?谢谢!五