2013-08-27 19 views
2

我遇到了一個問題,同時重構了一些代碼。我爲我的項目實施了MOGenerator。但是,我的一些關係是有序的,默認情況下,實現會爲CRUD操作創建8種不同的附件方法。但MOGenerator似乎根本沒有生成這些方法,而是提供了默認的無序配件方法。Morgenerator和NSOrderedSet

舉個例子,這將產生,如果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_; 

有沒有人碰到這個?

回答

2

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

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

這些方法被打破,並會引發以下異常:

*終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是:「* - [NSSet中intersectsSet:]: 設置參數不是NSSet'

另外,我想指出,我已經用一個非常基本的例子對自己進行了測試。如果有人有任何意見或更新,請隨時添加到這篇文章。

乾杯!

+0

似乎是一個長期存在的Apple bug:http://stackoverflow.com/questions/7385439/exception-thrown-in-nsorderedset-generated-accessors – IlDan

相關問題