开发者

Core Data. How to build "NSPredicate ... argumentArray" with array of NSManagedObjects?

I have 2 NSManagedObjects entities: VNSource <*--> VNDataChart (using a SQLite backend iOS). After some user's activities I have NSArray with selected Charts - listChartToDownload (contains VNDataChart objects).

I want to build predicate to filter all records in VNSource according objects in listChartToDownload. I was successful with result array of VNSource objects by iterating fetch request for each objects in listChartToDownload. But it seems to me that you have more effective way.

I try execute th开发者_如何学运维is code below, but result is false - only one VNSource-object in arrayRequest (should be > 30).

Could you explane my mistakes?

NSFetchRequest *localRequest = [[NSFetchRequest alloc] init];  
localRequest.entity = [NSEntityDescription entityForName:@"VNSource" inManagedObjectContext:context];  
localRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"resolution" ascending:YES]];  

localRequest.predicate = [NSPredicate predicateWithFormat:@"whichChart = %@" argumentArray: listChartToDownload];
localRequest.fetchBatchSize = 100;
arrayRequest    = [context  executeFetchRequest:localRequest error:&error1];

[localRequest   release];


From what I understood about your question, you should probably be using whichChart IN %@ instead of whichChart = %@.

And also, you should probably just be doing:

[NSPredicate predicateWithFormat:@"whichChart IN %@", listChartToDownload]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜