如何从核心数据中获取唯一字段值(song_type)
Posted
技术标签:
【中文标题】如何从核心数据中获取唯一字段值(song_type)【英文标题】:How to fetch unique field values (song_type) from core data 【发布时间】:2012-07-03 08:16:04 【问题描述】:我想知道如何从核心数据中获取唯一字段值 (song_type)。
我有下面的代码
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:myManagedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@"song_type"]];
[fetchRequest setEntity:entity];
NSError *aError;
NSMutableArray *fetchedResultsArray = [[myManagedObjectContext executeFetchRequest:fetchRequest error:&aError]mutableCopy];
if(! fetchedResultsArray )
NSLog(@"EEEERRROR");
else
NSLog(@"fetched %d", [fetchedResultsArray count]);
[fetchedResultsArray release];
[fetchRequest release];
我收到以下错误
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'无效的 keypath song_type 传递给 setPropertiesToFetch:'
【问题讨论】:
【参考方案1】:设置以下 2 个属性,您就完成了。
fetchRequest.returnsDistinctResults = YES;
fetchRequest.resultType = NSDictionaryResultType;
希望这会有所帮助。
编辑
NSFetchRequest *fetchRequest= [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:myManagedObjectContext];
//Take properties dictionary
NSDictionary *entityProperties = [entity propertiesByName];
[fetchRequest setEntity:entity];
[fetchRequest setReturnsDistinctResults:YES];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"song_type"]]];
NSArray * result = [myManagedObjectContext executeFetchRequest:fetchRequest error:nil];
【讨论】:
我试过但仍然得到相同的错误终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:'传递给 setPropertiesToFetch 的无效 keypath song_type:'.请帮助 当我这样运行时没有错误。NSEntityDescription *entity = [NSEntityDescription entityForName:@"Songs" inManagedObjectContext:myManagedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init]; [fetchRequest setEntity:实体]; NSError *aError;NSMutableArray *fetchedResultsArray = [[myManagedObjectContext executeFetchRequest:fetchRequest error:&aError]mutableCopy]; if(!fetchedResultsArray) else NSLog(@"fetched %d", [fetchedResultsArray count]); [fetchedResultsArray 发布]; [fetchRequest 发布]; 您能否在您的问题中发布 Songs Modal 类。 非常感谢,它有效。顺便说一下,请您解释一下代码 sn-p 以供我理解 让我们continue this discussion in chat以上是关于如何从核心数据中获取唯一字段值(song_type)的主要内容,如果未能解决你的问题,请参考以下文章