我在我的应用程序中使用CoreData。一切都工作正常,除了coredata总是返回最多20条记录,虽然我有超过50条记录。我一次又一次地检查了我的代码,但没有找到确切的原因。我也没有使用 fetchLimit 属性。请帮助我。
感谢。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:_manager.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = nil;
if (key != nil) {
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:key ascending:ascending];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
}
NSError *error = nil;
NSMutableArray *array = [[_manager.managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];
return array;
答案 0 :(得分:1)
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSInteger rowCount = [context countForFetchRequest:fetchRequest error:&error];
fetchRequest.fetchLimit = rowCount;
NSArray *allItems = [context executeFetchRequest:fetchRequest error:&error];
此处rowCount将计算所有行的实际数量,您可以将其设置为fetchLimit
答案 1 :(得分:-1)
核心数据默认返回20条记录。您可以使用setFetchLimit
类NSFetchRequest
来设置记录限制。
NSFetchRequest* request = [[NSFetchRequest alloc] init];
[request setEntity:[...]];
[request setFetchLimit:50];