繁体   English   中英

iOS Memory Heap持续增长

[英]iOS Memory Heap keeps growing

我希望这只是我无法弄清楚的一些简单事情。

我有一个带有类扩展的核心数据模型。

+(CDvitalsPO2Data *) newVitalDataInContext:(NSManagedObjectContext *)context {
    NSEntityDescription *entity = [NSEntityDescription entityForName:po2EntityName inManagedObjectContext:context];
    CDvitalsPO2Data *newVitalsDataPoint = [[[CDvitalsPO2Data class] alloc] initWithEntity:entity insertIntoManagedObjectContext:context];    
    return newVitalsDataPoint;
}

因此,这将在上下文和po2实体名称中返回一个新项目。 大。

如果我从以下代码调用此类扩展:

-(void) logPO2:(NSDictionary *)po2EntryDictionary forThisTime:(NSDate *)loggedTime inContext:(NSManagedObjectContext *)context {

if (context) {
        CDvitalsPO2Data *vitalsPO2Entry;
        vitalsPO2Entry  = [CDvitalsPO2Data newVitalDataInContext:context];
        vitalsPO2Entry.timeStamp  = [NSDate dateWithTimeIntervalSinceReferenceDate:[loggedTime timeIntervalSince1970]];

        vitalsPO2Entry.accelX = [po2EntryDictionary objectForKey:po2LogAccelX];
        vitalsPO2Entry.accelY = [po2EntryDictionary objectForKey:po2LogAccelY];
        vitalsPO2Entry.accelZ = [po2EntryDictionary objectForKey:po2LogAccelZ];
        vitalsPO2Entry.patchID = [po2EntryDictionary objectForKey:po2LogPatchID];
        vitalsPO2Entry.patchRSSI = [po2EntryDictionary objectForKey:po2LogPatchRSSI];
        vitalsPO2Entry.sequenceID = [po2EntryDictionary objectForKey:po2LogSequenceID];
        vitalsPO2Entry.sessionID = [po2EntryDictionary objectForKey:po2LogSessionID];
        vitalsPO2Entry.po2Value = [po2EntryDictionary objectForKey:po2LogValue];

        NSError *error;

        [[vitalsPO2Entry managedObjectContext] save:&error];
        if (error) {
            NSLog(@"save error:%@",error);
        }
}

我将对象插入到上下文中,将其保存,但是堆只会越来越大。 如果此日志每秒运行一次或每分钟运行一次,那么我只会看到内存增长。 我在调用中放入了各种弱指针,试图将其设置为nil,将自动释放池放入位置。 似乎什么都没有放缓,更不用说阻止内存蠕变了。 我觉得我缺少一些基本的东西。 这些对象一旦超出上下文保存范围,就不应该转储吗? 当我查看Instruments时,似乎在对象上有保留,但它是在系统级别上,而不是来自我的例行调用之一。

我所看到的所有问题都直接对Xcode计划负责。 产品->方案选择运行选项UNCHECK->队列调试(启用回溯记录)

完成此操作后,所有内存占用量增长立即消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM