我在使用 NSFetchResultsController 时遇到了一些麻烦,正在寻求帮助。
我的CoreData 实体FunCentre
具有以下属性name
、latitude
、longitude
、country
和。当用户在 tableview 中选择一行时,它将属性设置为 1,再次点击时将其设置回 0。这一切正常,因为我检查了 sqlite 文件并且更改正确发生。postcode
favourite
favourite
我想使用部分来分隔喜欢的行和不喜欢的行。我希望收藏夹列在第一部分的表格视图顶部,而列表的其余部分列在第二部分。
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"favourite"
cacheName:nil];
上面的代码在应用程序中工作并更改收藏夹,但是当我关闭应用程序并重新启动它时,收藏夹没有分组,只是按字母顺序显示在主列表中,它仍然在收藏夹部分中放置了正确的行数.
SQL 调试结果
CoreData: sql: SELECT Z_VERSION, Z_UUID, Z_PLIST FROM Z_METADATA
CoreData: sql: SELECT 0, t0.Z_PK, t0.Z_OPT, t0.ZCOUNTRY, t0.ZFAVOURITE, t0.ZLATITUDE, t0.ZLONGITUDE, t0.ZNAME, t0.ZPOSTCODE FROM ZFUNCENTRE t0 ORDER BY t0.ZNAME
CoreData: annotation: sql connection fetch time: 0.0051s
CoreData: annotation: total fetch execution time: 0.0106s for 34 rows.
CoreData: sql: SELECT t0.ZFAVOURITE, COUNT (DISTINCT t0.Z_PK) FROM ZFUNCENTRE t0 GROUP BY t0.ZFAVOURITE ORDER BY t0.ZFAVOURITE
谁能告诉我为什么分组不能重新启动?以及如何更改分组的顺序?因为收藏夹出现在底部,我希望它们在顶部。
提前谢谢了