0

嗨,我有一个从 coreData 获取数据的函数。这是方法

- (NSArray *)fetchRequestWithEntity:(NSEntityDescription *)entity
                      predicate:(NSPredicate *)predicate
                           sort:(NSArray *)sortDescriptors
                          range:(NSRange)range {
NSError *error = nil;
NSFetchRequest *request = [NSFetchRequest new];
[request setEntity:entity];
if (predicate != nil) {
    request.predicate = predicate;
}

if (sortDescriptors) {
    request.sortDescriptors = sortDescriptors;
}

if (range.length > 0) {
    request.fetchLimit = range.length;
}

if (range.location > 0) {
   request.fetchOffset = range.location;
}
request.fetchBatchSize = 15;

NSArray *array = [self executeFetchRequest:request error:&error];
if (!error) {
    return array;
}
else {

    NSLOG("Error");
    return nil;
}

}

程序在这一行崩溃。

NSArray *array = [self executeFetchRequest:request error:&error];

我检查了该方法的所有参数的值,一切似乎都很好。这与方法的“sortDescriptors”参数有什么关系吗?

这就是我获取 NSSortDescriptor 的方式

+ (NSArray *)sortDescriptors {
return @[[[NSSortDescriptor alloc] initWithKey:EIKNewsHeadlineAttributeStoryDateTime ascending:NO]];

}

我检查了方法的参数,我有一个有效的实体和 sortDescriptor。谓词的值为 nil,我的范围是(位置 = 0 和长度 = 0)。是什么导致了问题?

4

0 回答 0