我有一个NSManagedObject company
与属性(NSString*) name
和(NSDate*) lastAvailableInterim
。OO设计与核心数据:何处放置计算方法?
我想计算汇总值公司的阵列(NSArray *companies
),例如相当于基于下面的代码示例一季度末的最后报告日期:
- (NSDate*)latestAvailableInterimFor:(NSArray*)companies
{ // returns the maximum interim report date for all companies in the selection, date has to have end month = quarter end
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
__block NSDate *maxLatestAvailableInterim;
[self.companies enumerateObjectsUsingBlock:^(IBCompany *company, NSUInteger idx, BOOL *stop) {
NSDateComponents *monthComponents = [gregorian components:NSMonthCalendarUnit fromDate:company.latestAvailableInterim];
NSAssert((company.latestAvailableInterim),@"LatestAvailableInterim must be <> NIL!");
NSInteger month = [monthComponents month];
if (month % 3 == 0) maxLatestAvailableInterim = MAX(maxLatestAvailableInterim, company.latestAvailableInterim);
}];
return maxLatestAvailableInterim;
}
从面向对象的角度和基于MVC方案,我会在哪里放这个代码?
在处理结果值或“接近”(NSManagedObject*) company
子类的视图控制器中,或者将它添加到NSArray
的类别是否有意义?
谢谢!
我怀疑它应该在模型中。 –
从mvc的角度来看,你应该把它变成一个模型。正如雷说的那样。 self.companies应该是该方法的“公司”参数。 –