我正在开发ios应用程序。将数据保存在Core Data中并从核心数据中获取数据。并且数据传递给数组并计算数组,但问题是应用程序将崩溃错误消息是[原因:' *** - [__ NSArrayM objectAtIndex:]:索引0超出空数组的范围']。请事先给我解决方案。
code..
NSError *err = nil;
_offlineResult = [context executeFetchRequest:fetchRequest error:&err];
NSLog(@"%@",_offlineResult);
for (int i =0 ; i<[_offlineResult count]; i++) {
NSDictionary *dic = [_offlineResult objectAtIndex:i];
NSString *offlineChildProductId = [dic valueForKey:@"childproductid"];
if ([_offlineProductID isEqual:offlineChildProductId]) {
_productName.text = [dic valueForKey:@"baseproductcode"];
_productDescription.text = [dic valueForKey:@"baseproductdesc"];
NSData *imgData = [NSData dataWithData:[dic valueForKey:@"productimageone"]];
_imageFirst.image = [UIImage imageWithData:imgData];
}
}
答案 0 :(得分:0)
默认情况下,CoreData托管对象上下文不是线程安全的。崩溃的可能原因是,托管对象将从您的提取操作中删除(即使在后台线程中进行提取)。
您需要以保存对象的方式引入 concurrency 。
NSPrivateQueueConcurrencyType
创建子托管对象上下文。