您的位置:首页 > 移动开发 > IOS开发

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

2017-05-02 14:52 495 查看
导读:在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);

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息