我有一個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應該是該方法的「公司」參數。 –