Iphone iOS设备上的核心日期获取请求

Iphone iOS设备上的核心日期获取请求,iphone,ios,database,xcode,core-data,Iphone,Ios,Database,Xcode,Core Data,我在从iOS设备上的核心数据模型获取对象时遇到问题。使用模拟器时,对象被成功获取,但是,在设备上,我用来获取对象的NSMutableArray为空。当我在AppDelegate.m中获取对象时,它会正确返回对象,但当我在视图控制器中获取对象时,会发生错误。我在互联网上搜索了很多,却找不到解决这个问题的办法。我在应用程序加载时获取对象,获取此错误意味着应用程序将永远无法工作。提前谢谢 注:越狱的iPhone在测试时是否功能不正常?还要注意的是,我创建了另一个应用程序,它使用核心数据并正常工作,我真

我在从iOS设备上的核心数据模型获取对象时遇到问题。使用模拟器时,对象被成功获取,但是,在设备上,我用来获取对象的
NSMutableArray
为空。当我在
AppDelegate.m
中获取对象时,它会正确返回对象,但当我在视图控制器中获取对象时,会发生错误。我在互联网上搜索了很多,却找不到解决这个问题的办法。我在应用程序加载时获取对象,获取此错误意味着应用程序将永远无法工作。提前谢谢

注:越狱的iPhone在测试时是否功能不正常?还要注意的是,我创建了另一个应用程序,它使用核心数据并正常工作,我真的不知道这个应用程序有什么问题

- (void)loadCategoriesFromDatabase{

categoriesInDatabase = [[NSMutableArray alloc] init];

NSFetchRequest *fetchRequest = [NSFetchRequest alloc];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Category" inManagedObjectContext:managedObjectContext];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"display_order" ascending:YES];
NSArray *sortArray = [NSArray arrayWithObject:sortDescriptor];

[fetchRequest setSortDescriptors:sortArray];
[fetchRequest setEntity:entityDescription];

self.categoriesInDatabase = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

试着像这样将
n错误
指针传递到
executeFetchRequest

NSError* error = nil;
NSArray* categories = [managedObjectContext executeFetchRequest:fetchRequest
                                            error:&error];
if(error) {
    NSLog(@"%@", [error debugDescription]);
}
self.categoriesInDatabase = [categories mutableCopy];

并发布带有错误的日志。

请您发布有问题的获取请求的代码好吗?我已经发布了代码。您可能没有正确初始化您的
NSMutableArray
;第一行使用
self.categoriesinandabase
。另外,检查
executeFetchRequest
之后是否有错误(您当前正在传递一个没有帮助的
nil
参数)。@robotcat,我使用了
self.categoriesInDatabase
,没有任何更改。请注意,当我从
AppDelegate.m
获取对象时,数组成功返回对象,当我从视图控制器获取对象时,应用程序终止,异常为:-[\uu NSArrayM objectAtIndex:]:索引0超出空数组的边界。1。您在哪一行收到错误消息?它不应该是setter,那么您在哪里调用
objectAtIndex
?2.如果在获取请求后,
self.categoriesinandabase
为空,则您的获取有问题,应使用error out参数检查错误。这会带来什么?我通过正确初始化
NSFetchRequest
成功地解决了这个问题。谢谢你的帮助。