zoukankan      html  css  js  c++  java
  • 关于iOS上使用WWW引起的内存泄漏的临时解决方案

    原地址:http://www.unity蛮牛.com/thread-16493-1-1.html

    目前,在的4.3.3.和4.3.4版本中存在一个iOS平台上的内存泄漏问题,即当使用WWW来下载和加载Assetbundle文件时,如果按照以下方式来进行,则会造成Assetbundle卸载后内存不能完全释放的情况。

      对此,Unity官方已经就该问题进行了修复,并在下一个版本中进行更新。但对于目前仍在使用4.3.3和4.3.4两个版本上进行开发的项目,建议使用以下的临时解决方案,具体步骤如下:

    目前,在unity的4.3.3.和4.3.4版本中存在一个iOS平台上的内存泄漏问题,即当使用WWW来下载和加载Assetbundle文件时,如果按照以下方式来进行,则会造成Assetbundle卸载后内存不能完全释放的情况。
    
      对此,Unity官方已经就该问题进行了修复,并在下一个版本中进行更新。但对于目前仍在使用4.3.3和4.3.4两个版本上进行开发的项目,建议使用以下的临时解决方案,具体步骤如下:
    
      1.将Unity工程发布成Xcode工程;
    
      2.在生成的Xcode工程中找到文件:Classes/Unity/WWWConnection.mm;
    
      3.打开并查找函数: “extern ”C“ void UnityDestroyWWWConnection(void* connection)”;
    
      4.  将该函数做如下修改;
    
      修改前:
    
      
    [AppleScript] 纯文本查看 复制代码
    
    extern“C”voidUnityDestroyWWWConnection(void* connection)
     
      {
     
      UnityWWWConnectionDelegate* delegate = (UnityWWWConnectionDelegate*)connection;
     
      [delegate.connection cancel];
     
      delegate.connection = nil;
     
      [delegate release];
     
      }
    
    
      修改后:
    
    [AppleScript] 纯文本查看 复制代码
    
    extern“C”voidUnityDestroyWWWConnection(void* connection)
     
     {
     
     UnityWWWConnectionDelegate* delegate = (UnityWWWConnectionDelegate*)connection;
     
     [delegate cleanup];
     
     [delegate release];
     
     }
     
    
    5.接下来需要再添加一个cleanup函数,具体做法是先查找函数:
    
    [AppleScript] 纯文本查看 复制代码
    - (void)connection:(NSURLConnection*)connection
     
    didReceiveResponse:(NSURLResponse*)response”
     
    然后在该函数的上方插入cleanup函数,函数内容如下:
     
    - (void)cleanup
     
    {
     
    [_connection cancel];
     
    _connection = nil;
     
    [_data release];
     
    _data = nil;
     
    }
    
    
      6.经过上述修改,正常发布到设备上即可。
    
      说明:
    
      1、该问题仅存在于iOS平台;
    
      2、该问题仅存在于4.3.3和4.3.4两个版本上,4.3.2及之前版本并不存在该问题;
    
      3、另一常用加载API:WWW. LoadFromCacheOrDownload不会造成内存泄露问题。
  • 相关阅读:
    android 近百个源码项目【转】
    503 Service Temporarily Unavailable
    linux 复制文件夹内所有文件到另一个文件夹
    国甲魔方(1)
    大雁展翅,轮回,国甲,国丙,速龙,傲龙,御龙这些魔方有什么区别
    77教师一定要看的15部电影【附下载地址】
    教师一定要看的15部电影
    孩子
    为什么我的 app:actionViewClass="android.widget.SearchView"和app:showAsAction="ifRoom|collapseActionView"才有
    大数据征信 是伪命题?还是金融行业的救世主?
  • 原文地址:https://www.cnblogs.com/123ing/p/3746961.html
Copyright © 2011-2022 走看看