草庐IT

NSFetchRequest

全部标签

ios - NSPredicate,获取结果与一对多关系的子集

我正在处理CoreData和NSFetchedResultsController。我的数据模型如下所示:Product具有称为dataLines的一对多关系。dataLine实体有一个属性名称theWeek。我想获取所有Product,其中dataLines.theWeek==someValue。这可以通过子查询轻松完成。但这会返回所有数据线。是否可以创建一个返回Product的NSPredicate和一个子集(如果dataLines仅具有dataLines==someValue)? 最佳答案 您可以通过两种方式实现您想要实现的目标

ios - 如何重新排序显示的获取结果?

我有一个由NSFetchedResultController管理的TableView。因为我想获取最近添加的记录,所以我将Controller设置如下:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"timeStamp>=%@",someDate];NSSortDescriptor*descriptor=[[NSSortDescriptoralloc]initWithKey:@"timeStamp"ascending:NO];request.sortDescriptors=[NSArrayarrayWithObject:d

ios - 使用核心数据中的 NSFetchRequest 来获取聚合关系计数?

我无法理解如何最好地使用CoreData来解决这个问题,包括描述问题的正确术语。下面是问题的说明性示例(但不是我的实际对象)。假设您有一个音乐播放系统,其中艺术家有歌曲,并且系统中每次播放歌曲时都会记录时间戳。问题:如何找到播放过歌曲的艺术家数量?这里是示例NSManagedObject@interfaceMYArtist:NSManagedObject@property(nonatomic,retain)NSString*name;@property(nonatomic,retain)NSSet*songs;@end@interfaceMYSong:NSManagedObject@p

ios - NSFetchRequest - 包括未决更改

我的NSFetchedResultsController有问题,似乎可以通过打开IncludesPendingChanges来解决,这让我很担心。(我发现这不是真的,包括未决更改也无济于事。)我的FetchedResultsController在完整的API刷新时正确地获取并显示了我的对象。一步一步,我已经确认这个完整的API刷新的临时上下文被保存和合并而没有错误。但是,如果我随后返回到一个View,该View从不同的导航流执行相同的获取请求,则只会返回和显示一个部分完整的对象,而不是完整的对象集。如果我此时进行完整的API刷新,刷新会显示正确的对象。我相信我的问题可能是mergeCh

iphone - 核心数据不同提取给出空数组

我花了几个小时试图让抓取工作。我需要删除重复项,所以我想我可以遵循本指南core-data-how-to-do-a-select-distinct但它总是给我一个空数组。这是我的代码:NSFetchRequest*request=[[NSFetchRequestalloc]init];NSEntityDescription*entity=[NSEntityDescriptionentityForName:@"RBTag"inManagedObjectContext:[selfcontext]];request.entity=entity;request.propertiesToFetc

ios - 核心数据获取请求的复杂排序

我有一个NSEntity(Cloth),其属性(type)是从预定义的NSString值,即Poncho、Jacket、Coat、Gown、Top、Suit等。我想获取所有Cloth记录,以便根据为type定义的顺序对记录进行排序。即Poncho的所有记录都在顶部,然后是Jacket,然后是Coat,然后是Gown,然后是Top,然后是Suit,等等。Poncho‎…Poncho‎…Poncho‎…Jacket…Jacket…Coat…Coat…Coat…Gown…Gown…Top…Top…Top…Top…Suit…Suit…此顺序不是升序或降序,而是自定义的。我如何获取Cloth记录

ios - 有没有比提取请求更快的方法来检索核心数据中的特定托管对象?

我有一个创建托管对象(IntersectionObject)的方法,每个对象都具有三个属性。这三个属性本身就是托管对象。PropertyObject1、PropertyObject2和PropertyObject3各有大约20种不同的可能性。IntersectionObject本质上是特定PropertyObject1、PropertyObject2和PropertyObject3的组合。大约有1200个IntersectionObjects,为了创建它们,我使用获取请求来检索和设置正确的PropertyObject:-(PropertyObject1*)fetchedProperty

ios - NSFetchedResultsController UITableView 的多个实体

我有两个实体,一个叫Post,一个叫User。PostUser是核心数据中的关系。我正在使用NSFetchedResultsController来获取我的核心数据堆栈中的所有Post记录,然后将它们显示在UITableView中。每个单元格都有一个图像,该图像对应于一个User.profilePicture。初始化后,我不从服务器下载个人资料图片,我只在它滚动到该单元格时才下载(延迟加载)。下载后,我将下载的图像保存到核心数据堆栈中相应的User.profilePicture。有没有办法在我更新用户实体时调用controllerDidChangeContent?我目前的理解是,我的NS

ios - CoreData 的 iOS 搜索时间令人失望

我在装有iOS5.1.1的ipad上运行了一个coredata数据库。我的数据库中有大约50,000家公司。我在公司名称属性上创建了一个索引。我正在搜索此属性,有时会通过fetchRequest返回数千条记录。当返回几千条记录时,可能需要几秒钟才能从提取中返回。这使得预先输入搜索非常笨拙。我预计将来会有更大的数据库。要实现真正快速的搜索功能,我有哪些选择?谢谢。 最佳答案 我建议观看最近几次WWDC的核心数据性能视频。他们经常谈论改善这种瓶颈的策略。视频中的一些建议:将名称字段去规范化为单独的“不区分大小写和变音符号”searchS

ios - 如何使用核心数据按天分组?

我有一个名为deal的实体,deal有一个名为date的属性,它是这个交易对象插入商店的时间。并且一天可能有多个交易。所以我想按天计算一些数据组,我想获取day和countofsomething喜欢:2013-06-0332013-06-024而且我不想使用sectionPath,因为它只会将交易放入部分。我知道我可以通过在每个对象中设置另一个属性(类型:字符串)来完成此操作,例如dayOfTheDate,它类似于2013-06-03。顺便说一句,transient属性在这种情况下似乎不起作用你能明白我在找什么吗?在这里发表评论,以便我提供更多详细信息谢谢大家