iOS开发---内存相关问题总结

来源:互联网 发布:龙华淘宝电商 编辑:程序博客网 时间:2024/06/07 03:03

导读:在iOS开发过程中,代码中的内存泄露会使得大量的内存被使用,最后收到didReceiveMemoryWarning,最终导致程序崩溃。以下是开发与面试过程中遇到的一些问题和网上的一些资料,总结了一下(后续会不断添加):

1.大次数循环内存暴涨问题

一道经典的面试题,查看如下代码有何问题:

   for (int i =0; i <900000; i++) {

        NSString *string =@"Abc";

        string = [string lowercaseString];

        string = [string stringByAppendingString:@"xyz"];

        NSLog(@"%@", string);

   }

原因:该循环内产生大量的临时对象,直至循环结束才释放,可能导致内存泄漏,解决方法为在循环中创建自己的autoReleasePool,及时释放占用内存大的临时变量,减少内存占用峰值。

解决办法:

   for (int i =0; i <900000; i++) {

        @autoreleasepool {

            NSString *string =@"Abc";

            string = [string lowercaseString];

            string = [string stringByAppendingString:@"xyz"];

            NSLog(@"%@", string);

        }

    }



0 0
原创粉丝点击