Ios 没有托管对象上下文,无法执行操作

Ios 没有托管对象上下文,无法执行操作,ios,objective-c,core-data,nspredicate,Ios,Objective C,Core Data,Nspredicate,我正在尝试将核心数据查询中的项添加到nsmutablearray,但出现以下错误: "Cannot perform operation without a managed object context" 这是我的密码: NSPredicate *productPredicate = [NSPredicate predicateWithFormat:@"TRUEPREDICATE"]; NSManagedObjectContext *moc = self.managedObjectContext

我正在尝试将核心数据查询中的项添加到nsmutablearray,但出现以下错误:

"Cannot perform operation without a managed object context"
这是我的密码:

NSPredicate *productPredicate = [NSPredicate predicateWithFormat:@"TRUEPREDICATE"];
NSManagedObjectContext *moc = self.managedObjectContext;
NSEntityDescription *description = [ NSEntityDescription entityForName:@"Product" inManagedObjectContext:moc];
NSFetchRequest *request = [NSFetchRequest new];
request.predicate = productPredicate;
request.entity = description;
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];


for (NSInteger i = 0; i < results.count; i++)
{

    NSString *productName = [[results objectAtIndex:i] valueForKey:@"productName"];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"productName == %@", productName];
    NSArray *match = [_listOfProducts filteredArrayUsingPredicate:predicate];
    if (match == 0)
    {
        [self.listOfProducts addObject:[results objectAtIndex:i]];
    }
}

你们谁知道我为什么会出现这个错误?我非常感谢你们的帮助。

你们有托管对象上下文吗?@TomHarrington你们是说moc吗?是否存在:NSManagedObjectContext*moc=self.managedObjectContext;但这不是零吗?拥有
NSManagedObjectContext
变量并不意味着上下文存在。如果不是nil,po moc为什么要将匹配项与0进行比较?你的意思是说如果match.count==0?据我所知,filteredArrayUsingPredicate不会返回nil,如果没有匹配项,它将返回一个空数组。
[self.listOfProducts addObject:[results objectAtIndex:i]];