从具有Xcode(ARC)的函数返回NSManagedObject时内存泄漏

时间:2014-06-14 00:33:44

标签: iphone memory-leaks automatic-ref-counting

我有一个函数,它根据一个似乎是内存泄漏严重的谓词返回一个NSManagedObject。

- (WordMap *)getWordMapForLetter:(NSString *)letter
{
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"WordMap" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];

    WordMap *wordMap = Nil;

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"letter == %@", letter];
    [fetchRequest setPredicate:predicate];

    NSError *error;
    NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

    if ([fetchedObjects count] > 0) {
        wordMap = (WordMap *)[fetchedObjects objectAtIndex:0];
    }

    return wordMap;
}

问题看起来特别在于以下行,因为注释它会阻止泄漏......

wordMap = (WordMap *)[fetchedObjects objectAtIndex:0];

我假设问题是我正在返回对在函数范围内创建的数组项的引用,因此ARC之后不能处理该数组?

这是正确的还是完全没问题?无论如何,我完全不确定如何停止泄漏建议?

0 个答案:

没有答案