ios - MOGenerator 和 NSOrderedSet

标签 ios objective-c core-data mogenerator

我在重构一些代码时遇到了一个问题。我已经为我的项目实现了 MOGenerator。然而,我的一些关系是有序的,默认情况下实现会导致为 CRUD 操作创建 8 种不同的辅助方法。但 MOGenerator 似乎根本不生成这些方法,而是提供默认的无序辅助方法。

作为示例,如果不使用 MOGenerator,则会生成以下内容:

- (void)insertObject:(CustomModel *)value inCustomModelAtIndex:(NSUInteger)idx;
- (void)removeObjectFromCustomModelAtIndex:(NSUInteger)idx;
- (void)insertCustomModel:(NSArray *)value atIndexes:(NSIndexSet *)indexes;
- (void)removeCustomModelAtIndexes:(NSIndexSet *)indexes;
- (void)replaceObjectInCustomModelAtIndex:(NSUInteger)idx withObject:(CustomModel *)value;
- (void)replaceCustomModelAtIndexes:(NSIndexSet *)indexes withCustomModel:(NSArray *)values;
- (void)addCustomModelObject:(CustomModel *)value;
- (void)removeCustomModelObject:(CustomModel *)value;
- (void)addCustomModel:(NSOrderedSet *)values;
- (void)removeCustomModel:(NSOrderedSet *)values;

这就是 MOGenerator 生成的内容:

- (void)addCustomModel:(NSOrderedSet*)value_;
- (void)removeCustomModel:(NSOrderedSet*)value_;
- (void)addCustomModelObject:(CustomModel*)value_;
- (void)removeCustomModelObject:(CustomModel*)value_;

有人遇到过这种情况吗?

最佳答案

我自己找到了解决办法。 mogenerator 没有使用辅助方法,而是为您提供了 customModelSet 方法。够有趣的,

- (void)addCustomModel:(NSOrderedSet*)value_;
- (void)removeCustomModel:(NSOrderedSet*)value_;
- (void)addCustomModelObject:(CustomModel*)value_;
- (void)removeCustomModelObject:(CustomModel*)value_;

这些方法已损坏并会引发以下异常:

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSSet intersectsSet:]: set argument is not an NSSet'

此外,我想指出的是,我已经用一个非常基本的示例自行测试了它。如果有人有任何意见或更新,请随时添加到本文中。

干杯!

关于ios - MOGenerator 和 NSOrderedSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475949/

相关文章:

iphone - 在 iPhone 上更新 SQLite 数据库

objective-c - 如何知道 UIImageView 中图像的大小

objective-c - 无法实现俄罗斯方 block 移动方法

ios - executefetchrequest 导致崩溃

iphone - 将核心数据添加到现有的 iPhone 应用程序

ios - 如何在 Swift 3/4 中更改 MapKit 的引脚颜色?

ios - UICollectionView:如何检测滚动何时停止

ios - 将 Swift 集成到导出的 Unity 项目中而不是使用 Objective C?

ios - 界面类似于带有 UIScrollView 的 Snapchat

Swift Core Data 正在保存到/dev/null 所以它只在内存中