我刚刚开始将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
答案 0 :(得分:-1)
尝试从构建脚本中删除--template-var arc = true。
然后在XCode,Project Properties,Compile sources中,将问题文件设置为具有以下标志
fno-objc-arc
这将仅关闭那些文件的ARC。