2

我在重构一些代码时遇到了一个问题。我已经为我的项目实施了 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_;

有没有人遇到过这个?

4

1 回答 1

2

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

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

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

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSSet intersectsSet:]: set argument is not an NSSet”

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

干杯!

于 2013-08-28T21:33:07.540 回答