因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [OS_xpc_array length]:无法识别的选择器已发送

时间:2017-06-23 09:21:00

标签: objective-c exception core-data nsfetchrequest executefetchrequest

您好我有一个从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,我的范围是(location = 0和length = 0)。是什么导致了这个问题?

0 个答案:

没有答案
相关问题