session401—visual Debugging with xcode

本文介绍了WWDC2016中Xcode新增的调试功能,包括运行时问题检测、视图调试、内存图调试及FPS监控等,提升了开发者调试体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WWDC2016 session401的题目是 visual Debugging with xcode,意为 xcode的可视化调试,主要分为以下几部分内容:

  • Runtime issues 11
  • View debugging 12
  • State machine Quick Looks 13
  • SpriteKit/SceneKit FPS gauge 14
  • Memory graph debugging 15

这里主要介绍 11 12 14 15

Runtime issues

下面这些图标大家应该都很熟悉,编译error warning analyze

现在新增了这个图标 Runtime issues
这里写图片描述

这个不是oc中的Runtime问题,而是指app运行过程中产生的issue。
例如,当多线程修改一个变量的时候会提示

而会提示这样错误的包括三个地方 UI内存线程,下面的内容是有关UI方面的。

view Debugging

先说说xcode上的变化,想必之前用过XIB都了解过,之前是sizeClass的,我可以在九宫格中选择如下图

在xcode 8上就变成以下图这样,可以任意选择可观的设备以及横竖屏,更加真实
这里写图片描述

除此之外,相比大家在调试的过程中都用过这里写图片描述来查看当前页面的布局,层级关系如下如
这里写图片描述

以前可以通过title,类名,父类名来查找,现在可以通过控件的 地址 来查找,也可以根据类名跳转到相应的类,看下图
这里写图片描述

这块xcode8上不仅多了可以通过地址来查找,如果有约束冲突还会在runtime以及右侧中高亮显示,如下图

不仅仅这些另外快照速度也提高了70%比之前,对blur的支持也更完善。

Memory graph debugging

xcode 8上运行 iOS 10 以及以上的设备 会出现这个一个按钮,点击可以看到某一时刻内存中所有的class,点击class可以看出谁持有了这个类,如下列图中所示(这里假设只有一个根控制器FirstViewContrller从根控制器push过去添加SecondVC,并且设置SecondVC的block)


从图中可以看出FirstViewController的持有关系,利用这个当有循环引用的时候会很方便,如果查到是block或者timer引起的,点击右侧对应位置就可以跳到指定位置。例如下面这个例子,点击NSCFTimer,就能在右边直接点击,跳到对应位置如下图


另外,如果没有被释放,还会有提示内存泄露,在Runtime中

如果打开了malloc stack,还可以在右边看到选中的类的内存创建过程,如下图

SpriteKit/SceneKit FPS gauge

FPS 可以看到GPU和CPU的使用情况,方便我们去优化系统性能,突破一些瓶颈。如下图所示

可以在图中了解到 CPU 的占用率。

以上便是这次分享给大家的主要内容。这次在xcode调试上的改变,给我最大的感觉,就是人性化


注:本博客由尹者倾情赞助联合开发完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值