我有一个iPhone应用程序,其核心数据对象具有“颜色”属性。我想获得已保存的所有颜色值的列表。一个简单的SQL语句SELECTDISTINCT(color)FROMmyObjectTable可以轻松做到这一点。我如何在CoreData中执行此操作而不将所有对象(可能有数千个)加载到内存中的NSSet中? 最佳答案 您可以:1)设置NSFetchRequest的requestType为NSDictionaryResultType2)NSFetchRequest中的“setPropertiesToFetch”只获取属性而不是整个对象。
一定有更简单的方法来做到这一点。我搜索了又搜索,但似乎找不到我要找的答案。假设我们有这样的关系实体A>实体B如果我创建2个EntityA实例,每个实例有3个EntityB实例。在为每个EntityA显示所有EntityB的ViewController中,它显示所有6个而不是与其相关的3个。唯一能让它正确显示的方法是将指针从一个Controller传递到另一个Controller:viewController2.entityA=viewController1.entityA;然后通过以下方式获取结果:NSMutableArray*result=[[NSMutableArrayalloc]
我想省略NSFetchRequest中的谓词,以便删除实体的所有托管对象。然而,当没有谓词时(根据SQL调试器),获取请求不会被执行。根据Apple的说法,谓词应该是可选的。我需要如何更改我的代码才能删除谓词?有任何想法吗?谢谢!-(void)deleteEntity:(NSString*)entityNameinContext:(NSManagedObjectContext*)context{NSFetchRequest*request=[[NSFetchRequestalloc]init];[requestsetEntity:[NSEntityDescriptionentityFo
假设我有一个Podcast实体,它有很多剧集,我很困惑其中哪一个是剔除和排序的首选选项://Alwaysworkwiththerelationshipproperty-(NSSet*)unfinishedEpisodes{NSArray*episodes=self.episodes.allObjects;NSPredicate*predicate=[NSPredicatepredicateWithBlock:^BOOL(PodcastEpisode*episode,NSDictionary*bindings){return!episode.isFinished;}];NSArray*u
我有3个实体:Topic>subTopic>Certificate.我想要的是所有主题的列表,其中存在证书(没有重复项)。根据我的初步阅读(主要是这个问题:CoreDataperformance:predicateonmoreto-manyrelationships),我发现最有效的方法(假设可能)是从证书级别开始,并从证书列表中导出主题列表。但就我所知。如何指定当我想要返回主题列表时,我想要的列表将基于所有证书?是否可以为可以返回主题列表的fetchrequest指定谓词。有没有一种方法可以做到这一点,而无需手动跟踪每个证书的关系并将找到的主题添加到NSSet或其他东西?感谢您的任何
我正在使用AppDelegate的默认managedObjectContext,当我在其上执行executeFetchRequest时,它永远不会转到下一行或因错误而崩溃。这是在后台线程上进行的,因此UI不会卡住,但数据永远不会填充——我的事件指示器永远不会停止,而且我的调试告诉我它永远不会脱离该语句。我遍历了每一行,并将其缩小到executeFetchRequest方法。这可能是什么原因造成的?没有保存任何对象,但我认为这与它没有任何关系。到目前为止,已经一个小时了,所以显然出了点问题。最后,这种情况只会发生40%。代码如下:NSSortDescriptor*byTimestamp=
简而言之:获取实体并根据不是属性的@property对它们进行排序将导致错误(涉及NSDictionaryMapNode)第二次运行。这是正常现象还是错误?您对此有什么意见或帮助吗?长:情况如下。我有一个实体,它有两个属性attribute1和attribute2。我生成了[1]类Entity.m并向其添加了一个名为myProperty的@property>。因此,myProperty是我的类Entity.m的@property而不是实体Entity的属性。顺便说一句,myProperty是readonly(假设它类似于attribute1与attribute2连接。现在,我执行以下操
我正在尝试为具有nilwhenRead日期属性和具有给定userID的收件人的MyMessage对象创建一个获取请求模板>。但是,当我尝试在Xcode5提取请求编辑器中创建这样的表达式时,它会将我的表达式转换为:为此(使用当前日期作为值):在我点击离开并再次选择请求选项卡之后。有没有人遇到过这个问题?这是Xcode5错误,还是我遗漏了什么?(whenRead属性被标记为可选的并且具有日期类型。)编辑:我应该补充一点,当我以编程方式创建这个谓词时,它工作得很好。NSFetchRequest*request=[[NSFetchRequestalloc]initWithEntityName:
我正在尝试检查一个字符串是否包含我的搜索字符串(例如,假设为“cr”)。我有一个对象A,它有多个对象B,B有一个NSArray(命名数组)NSDictionary的。NSDictionary有2个键:@"desc"和@"action"。我想获取“A”的所有对象,其中至少一个desc键包含我的搜索字符串“cr”。我试过:NSPredicate*searchStringPredicate=[NSPredicatepredicateWithFormat:@"(SUBQUERY(A.B,$b,ANY$b.array.descCONTAINS[cd]%@).@count>0)",@"cr"];但
好吧,我是谓词菜鸟。他们对我来说是陌生的。关于应用程序:我有一个处理游戏比赛的应用程序。有用于玩家、签到和比赛的实体。这个想法是将球员添加到应用程序,然后可以登记参加比赛,并存储比赛结果。关系:玩家>签到(每个玩家可以在不同日期多次签到)来自:玩家实体关系:playerCheckins反向:checkedInPlayer目的地:checkin实体选手>比赛(每场比赛可以有两名选手,选手每次比赛可以有多场比赛)来自:玩家实体关系:playerMatches逆向:matchPlayers目标:匹配实体我有一个共享CollectionView,其中列出了应用中的所有玩家。当玩家签到以及将他们