iOS ARC 内存一直不停的增加
ringa_lee
ringa_lee 2017-04-17 15:44:11
0
4
613
ringa_lee
ringa_lee

ringa_lee

répondre à tous(4)
Ty80

NSThread线程中不要使用NSData的subdataWithRange方法

转来的,你可以看看

Peter_Zhu

代码没给全吧,也没看出来对data做了啥操作啊。另外,在主线程调用sleepForTimeInterval会卡住UI线程的。

PHPzhong

楼主确定这这些代码引起的内存增长吗?如果确定,可以在这个函数入口加个断点,然后一步一步的调试,看看走完哪一行代码后内存有的增长

大家讲道理

如果循环很多,可以手动加上释放池:

  @autoreleasepool {
      your code    
   }

例如你的代码改为:

- (void)viewDidLoad {
    [super viewDidLoad];

    staitc int EVERBUFFERLEN = 2000;
    NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"wakeup.pcm" ofType:nil]];
    NSMutableData *mData = [NSMutableData dataWithData:data];

    int readLength = 0;
    while (readLength < mData.length) {
        if (mData.length - readLength > EVERBUFFERLEN) {
            @autoreleasepool {
              NSData *data = [mData subdataWithRange:NSMakeRange(readLength, EVERBUFFERLEN)];
              readLength += EVERBUFFERLEN;
              [NSThread sleepForTimeInterval:0.01];
              data = nil;
           } 
        }
    }

为工程师推荐兼职,详情点我头像

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal