2011-11-13 108 views
1

我有一個tableview按部分日期的問題。 我拿了蘋果的例子:DateSectionTitles日期部分標題不起作用

我不在乎年。我不需要一天一天的時間。 所以我適應我的代碼這樣的:

在我CoreData類:

- (NSString *)sectionIdentifier { 
[self willAccessValueForKey:@"sectionIdentifier"]; 
NSString *tmp = [self primitiveSectionIdentifier]; 
[self didAccessValueForKey:@"sectionIdentifier"]; 
NSLog(@"!Temp"); 
if (!tmp) { 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 

    NSDateComponents *components = [calendar components:(NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[self timeStamp]]; 
    tmp = [NSString stringWithFormat:@"%d", ([components month]*100) + [components day]]; 
    [self setPrimitiveSectionIdentifier:tmp]; 
} 
return tmp;} 

,並在我的主控制器我titleForHeaderInSection方法:

NSInteger month = numericSection/100; 
NSInteger day = numericSection - (month * 100); 

NSString *titleString = [NSString stringWithFormat:@"%d %d",day, month]; 

return titleString; 

但是當我運行我的應用我有此消息:

CoreData:error:(NSFetchedResultsController)節的名稱鍵路徑返回nil值' sectionIdentifier」。對象將被放置在未命名的部分

你知道爲什麼嗎? 感謝您的幫助!

回答

0

從邏輯上講,這將在這行代碼

NSDateComponents *components = [calendar components: 
    (NSMonthCalendarUnit | NSDayCalendarUnit) 
    fromDate:[self timeStamp]]; 

[self timeStamp]返回無效NSDate的發生,如果。如果是這種情況,請聯繫NSLog聲明。

+0

沒有打印。它不進入 - (NSString *)sectionIdentifier方法:/ – Pierre

+0

好吧,太好了。你發現了這個問題。 – Mundi

+0

是的,但我不知道爲什麼:D – Pierre

3

一個常見的錯誤通常是爲nsmanagedobject編碼瞬態屬性,人們忘記在數據模型文件(xcdatamodeld)中「啓用」transient屬性。

+0

啓用瞬態屬性保存了我的一天。謝謝! –