gpt4 book ai didi

iphone - 每天包含部分的表格 View (带有核心数据)

转载 作者:行者123 更新时间:2023-12-03 21:09:05 26 4
gpt4 key购买 nike

我有一个非常普通的 RSS 阅读器类型的应用程序。核心数据中的对象有一个 pubDate 属性,它是发布的确切日期+时间。使用此选项可以让每篇文章都有自己的部分。

因此我添加了一个 transient 属性:

@dynamic sectionDay;

-(NSString *) sectionDay {
// Get the date, and convert it to the day (counld probably be done a bit more scientific!)
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];

//Set the required date format
[formatter setDateStyle:NSDateFormatterLongStyle];

// Set the values;
NSString *dateString = [formatter stringFromDate:self.pubDate];

return dateString;
}

然后在 FetchedResultsController 中我添加了sectionDay作为sectionNameKeyPath

    // Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"pubDay" ascending:NO] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[self managedObjectContext] sectionNameKeyPath:@"sectionDay" cacheName:nil];

问题是我在 NSFetchedResultsController PerformFetch 上收到“ojbc_exception_throw”:

*

#0  0x012165a8 in objc_exception_throw
#1 0x00eba676 in -[NSSQLGenerator newSQLStatementForFetchRequest:ignoreInheritance:countOnly:nestingLevel:]
#2 0x00df2a78 in -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:]
#3 0x00df2881 in -[NSSQLAdapter newSelectStatementWithFetchRequest:]
#4 0x00df272e in -[NSSQLCore newRowsForFetchPlan:]
#5 0x00df1ab5 in -[NSSQLCore objectsForFetchRequest:inContext:]
#6 0x00df166e in -[NSSQLCore executeRequest:withContext:error:]
#7 0x00ea10ec in -[NSPersistentStoreCoordinator executeRequest:withContext:error:]
#8 0x00dee807 in -[NSManagedObjectContext executeFetchRequest:error:]
#9 0x00ed2c10 in -[NSFetchedResultsController performFetch:]
#10 0x0000456e in -[ArticleController getArticles] at ArticleController.m:92

*

有什么建议我做错了吗?

最佳答案

编辑:BoltClock 第一条评论中的解决方案!

由于 transient 属性不存储在数据库中,因此获取结果 Controller 无法使用 sql 语句查询它们。(您的错误消息)

一个可能的解决方案是另外存储标准化日期(删除时间部分,设置为 00:00:00),以按不带时间的日期对条目进行分组。

Apple 在某些情况下推荐这种类型的解决方案,例如存储用于搜索的规范化字符串

关于iphone - 每天包含部分的表格 View (带有核心数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4554527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com