didReciveMemoryWaring和dealloc的内存管理优化

-(void)didReciveMemoryWaring

{



       [super didReceiveMemoryWaring];
 
       //self.isViewLoaded判断视图是否在内存中, self.view.window判断当前视图是否显示在window上面
 
       //当收到内存警告,如果当前视图已经加载至内存,并且没有显示在window上,释放其内部一些资源
 
       if(self.isViewLoaded && !self.view.window)
  {
 
              //所有需要在viewDidLoad加载的全局变量都要在此处释放
 
              //包括strong变量、字典、数组
 
             userNo = nil;
 
             userName = nil;
 
             //注意从上一界面传来的参数不需要在这里释放
  
            self.view = nil; //当再次进入此视图时,能重新调用viewDidLoad
 
            //如果需要记录界面交互信息,可以不将self.view设置为nil 
 
      }
 
}


 
-(void)dealloc
{
 
     //当界面pop出栈时,调用此方法
 
     //此处将一些界面销毁后仍然没有释放掉的变量释放掉
 
     //如定时器和通知的销毁
 
     //注意 此处不要调用[super dealloc];
 
}
posted @ 2014-03-13 16:48  曈曈7添  阅读(269)  评论(0)    收藏  举报