MOGenerator和NSOrderedSet

时间:2013-08-27 21:40:23

标签: 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_;

有没有人遇到过这个?

1 个答案:

答案 0 :(得分:2)

我自己找到了解决方案。 mogenerator不使用附件方法,而是为您提供customModelSet方法。有趣的是,

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

这些方法被破坏并会引发以下异常:

  

*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSSet intersectsSet:]:   set参数不是NSSet'

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

干杯!