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不会造成内存泄露问题。
  • 相关阅读:
    react-router-dom中的BrowserRouter和HashRouter,link与Navlink
    在React中使用react-router-dom路由
    详解react中的state,props,refs
    简单明了的vuex详解
    暂时性死区
    es6中的块级作用域
    es6的let
    前端模块化
    Web框架
    百分比布局 双飞翼布局 圣杯布局
  • 原文地址:https://www.cnblogs.com/123ing/p/3746961.html
Copyright © 2011-2022 走看看