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

Iphone 从带有Xcode(ARC)的函数返回NSManagedObject时内存泄漏,iphone,memory-leaks,automatic-ref-counting,Iphone,Memory Leaks,Automatic Ref Counting,我有一个函数,它根据一个谓词返回一个NSManagedObject,这个谓词似乎内存泄漏严重 - (WordMap *)getWordMapForLetter:(NSString *)letter { NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"WordMap" inM

我有一个函数,它根据一个谓词返回一个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以后不能处理数组


这是正确的还是问题完全是另外一回事?不管怎样,我根本不知道如何停止泄漏-建议?

您如何知道您遇到了内存泄漏问题?您是使用instrument来检查这些对象,还是只是猜测?不,还没有使用过instruments,但在for循环中调用此函数后,我可以看到调试导航器中每次迭代的内存使用量稳步增加约1.5MB,直到我的测试设备最终崩溃。好的,按照你的建议,我运行了一些工具,分配只是继续增加内存使用。问题是,这似乎永远不会平稳或下降。