当前位置: 首页 > news >正文

婚纱网站开发背景烟台网站建设方案咨询

婚纱网站开发背景,烟台网站建设方案咨询,域名服务器查询,怎么推广我的网站吗一、dealloc的使用 场景一: 最近在优化一个数据接收协议,就是在controller类init时进行订阅数据操作,在dealloc中进行反订阅数据操作。页面跳转场景如下:主界面self.view然后还有A、B、C、D四个子view可以用来点击切换。页面的加…

一、dealloc的使用

 场景一:

最近在优化一个数据接收协议,就是在controller类init时进行订阅数据操作,在dealloc中进行反订阅数据操作。页面跳转场景如下:主界面self.view然后还有A、B、C、D四个子view可以用来点击切换。页面的加载是采用addSubview的方式,如下:

    A *vc = [[A alloc] initWithFrame:self.mainframe];
    vc.delegate = self;
    mCurConttentViewController = vc;

    [self.view addSubview:mCurConttentViewController.view];

在addSubView之后,便开始加载新的页面。在加载新的页面之前,需要将之前的页面清空,不然反复切换会将导致[self.view.subviews count]这个数值不断的增大。

     [mCurConttentViewController.view removeFromSuperview];
     [self removeSubViewController:mCurConttentViewController];

(PS:removeFromSuperview,类似一个剪枝,执行此函数,就等于在树形结构中找到该节点,剪去该节点及其子节点,而并非只是剪去该节点自己。同时,另一个操作就是把该对象从响应者链中移除,所以还需要将view继续remove才能从内存中移除。)

在新的页面加载进来之后,原来的页面自动执行dealloc方法;如果没有以上的remove操作,便不会执行dealloc方法;

场景二:

我写过一个拍照相机的CameraViewController,用它来拍摄照片。由主界面进入相机界面是采取模态切换的方式,如下:

 CameraViewController *wCV = [[CameraViewController alloc] initWithNibName:@"CameraViewController" bundle:nil];
    wCV.delegate = self;
    wCV.wantsFullScreenLayout = YES;
 [[AppController instance] presentModalViewController:wCV animated:YES];

在相机拍摄结束后,离开相机界面:

[self dismissModalViewControllerAnimated:YES];

此时发现dealloc方法会被执行。

由此可见,dealloc是在当前视图被remove或者dismissModalViewControllerAnimated等释放操作时,清空当前视图viewController里面实体和数据,用来释放内存。该方法也是自动调用,无需要手动执行。dealloc里面你可以定义自己需要的释放操作,比如上面我说的一个数据协议的反订阅操作等。

 

二、与viewDidUnload的区别

viewDidUnload是在ios 6之前的版本使用的,与viewDidLoad对应。根据它的解释文档可知,viewDidUnload主要发生在OS内存警告时,除当前正在展示的view所属viewController 以外所有已经在内存里面的viewController 会执行viewDidUnload 方法,当前viewController不执行viewDidUnload,但是,这些viewController不会被dealloc。英文解释如下:

// Called after the view controller's view is released and set to nil. For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc.

- (void)viewWillUnload NS_DEPRECATED_IOS(5_0,6_0);
- (void)viewDidUnload NS_DEPRECATED_IOS(3_0,6_0);

在撰写此笔记时,ios 8已经出现。viewDidUnload在ios 6以后的版本就不在支持了。

三、参考资料

http://blog.csdn.net/tonny_guan/article/details/8059236

http://blog.csdn.net/likendsl/article/details/7573504

http://www.yayakq.cn/news/964433/

相关文章:

  • 网站建设优化服务熊掌号东营建设网站
  • 扬州广陵城乡建设局网站深圳贝尔利网站建设公司
  • 网站ui外包优未网络科技秦皇岛有限公司
  • 网站开发经验与教训温州市网络科技有限公司
  • 音乐网站设计怎么做湛江网红打卡点
  • 汽车门户网站程序2003配置网站与2008的区别
  • 网站的demo怎么做如何做论坛网站 知乎
  • 淄博网站制作网络丰富百度网站登录
  • 美工怎么做网站效果图电子商务网站建设详细策划书
  • 珠海集团网站建设报价福州互联网公司排行榜
  • python+网站开发实例教程官方网站手机 优帮云
  • 做市场推广应该掌握什么技巧搜索引擎优化包括
  • 有没有帮人做CAD的网站太湖县住房与建设局网站
  • 腾讯域名注册网站哪里可以做
  • 电子商务网站建设与规划教案网页制作与设计软件
  • 网站建设中国十强网站底部固定广告代码
  • 施工企业介绍安卓aso优化排名
  • 企业信息管理系统er图网站seo优化案例
  • 上海城市分站seo优定软件网站建设
  • 苏州网站建设书生商友网站开发环境安装程序
  • 北京网站的网站建设公司网页设计培训哪家机构好
  • wordpress调用headerseo外链技巧
  • 网站欢迎页面代码铁岭做网站包括哪些
  • 大型企业网站源码中国未来楼市走势分析
  • 做外贸翻译用哪个网站好聊城做网站价格
  • 网站平台设计 问题做的网站在百度搜索不到
  • 沈阳 建设工程 招标中心网站肇庆网站建设解决方案
  • 湛江个人网站建设电商设计行业前景
  • 网站哪个公司做织梦网站如何做301跳转
  • 展览馆网站建设方案书网站建设主要问题及建议