0
我想过滤一些管理对象。结果虽然是zip。为什么这个获取请求不返回
过滤器是“名称”。名称是根视图提供给此详细视图的元素。 名称记录确定:
[48582:2754928] name: To Be
[48582:2754928] predicate: name == @"name"
name = [self.detailItem valueForKey:@"name"];
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
和FetchResultsController如下:
NSError *error = nil;
name = [self.detailItem valueForKey:@"name"];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"VerbEntity" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
predicate = [NSPredicate predicateWithFormat:@"name == %@",@"name"];
NSLog(@"name: %@", name);
fetchRequest.predicate = predicate;
NSLog(@"predicate: %@", predicate);
// Create the sort descriptors array.
NSArray *sortDescriptorArray = nil;
// Declare sort descriptors
NSSortDescriptor *sortDescriptorPrimary = nil;
sortDescriptorPrimary = [[NSSortDescriptor alloc] initWithKey:@"position" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
// Set sort descriptor array
sortDescriptorArray = @[sortDescriptorPrimary];
// Apply sort descriptors to fetch request
[fetchRequest setSortDescriptors:sortDescriptorArray];
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
NSLog(@"fetchedObjects count: %lu", (unsigned long)fetchedObjects.count);
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
做任何事情脱颖而出靠不住?谢谢你的帮助。
没有谓词,你的获取返回的东西吗?如果name是一个'NSString',那么使用'@“名称LIKE%@”'怎么办?你不是想把'@“name ==%@”,@“name”'改成'@“name ==%@”,name',这可能是一个错误,并解释了为什么你没有找到任何东西在你的提取? – Larme 2014-09-24 14:37:41
如果初始化提取请求的方式不同,会发生什么情况?也许试试 [NSFetchRequest fetchRequestWithEntityName:@“VerbEntity”]; 另外,什么是_fetchedResultsController?一个NSFetchedResultsController?如果是这样,你需要在其上设置NSFetchRequest对象。 – 2014-09-24 15:33:20
谢谢大家。你的答案组合解决了这个问题。 – 2014-09-24 18:32:19