iOS调试奇巧淫技(一)

简介:

你以为,你以为的就是你以为的吗?

这里写图片描述

  • 你以为你代码写的很OK啦?
  • 你以为你的是大牛啦?
  • 你以为的就是你以为的吗?
  • 你的代码经得起考验吗?(PS:爱经得起考验吗)

iOS调试的技巧很多,通过调试我们不仅可以迅速找到Bug的所在,更能优化代码,让你的你以为不再是你以为!

一、断点

普通断点

这里写图片描述

当运行时遇到断点会停止下来供程序员调试

这里写图片描述

我们清晰的看到此时的i依旧等于0,该函数在一个名为ViewController中

这里写图片描述

上图中有五个可选按钮

分别是取消断点按钮、继续执行一步按钮、步入按钮、步出按钮

条件断点

这里写图片描述
点击断点右键的Edit Breakpoint按钮
这里写图片描述

解释一下:

Condition后面的UILbel中我们可以写入条件语句 例如i==5,此时断点只会在i==5的时候断点作用才会生效

同样的我们可以在lgnore里面设置数字,表示忽略前面的执行次数,在数字+1

才会生效。

当我们想看到哪个函数执行了多少次,可以在Action设置为Log Message,如下图所示的那样:

这里写图片描述

记住一定要把下面的对号打上呀

异常断点

注意这个断点感觉是最实用的

我们经常会遇到程序调试过程中崩溃,几万行甚至几十万行的代码,崩溃后就会跑到Mian函数中,根本不清楚

哪里出现问题,想加普通断点调试都不知道该往哪里加,如下图那样:

这里写图片描述

看到这个你是不是这样的表情:duang~一般的崩溃

这里写图片描述

此时我们就需要加到异常断点,加入办法如下:

这里写图片描述

这里写图片描述
这样我们遇到崩溃~~~

这里写图片描述

Dang~的XCode直接帮我们进入引起Crash的地方,方便进行修改

配置断点:根据使用性也加函数、类断点

通过配置断点我们可以精确到某个类或者某个方法中进行终端

这里写图片描述

具体做法是在Symobol中根据具体的需求加上相应的函数或者类

这里写图片描述

代码运行时间

我们完成一个项目后,进行调试,为了使软件流畅的最大化,有时候需要优化代码,这时候我们需要找到哪些
代码是耗时的,想办法优化算法或者另外开辟多线程,保证良好的用户体验。这时候就用到测时间的方法。

NSDate *startTime=[NSDate date];

for (i=0; i<100000; i++) {
    NSLog(@"NSLog:%d次",i);
}
NSLog(@"Time is:%f",-[startTime timeIntervalSinceNow]);

建议在pch文件中可以定义一个宏变量,关于pch的用法

可以参考我的这篇博客

#define STARTTIME NSDate *startTime=[NSDate date];
#define ENDTIME  NSLog(@"Time: %f", -[startTime timeIntervalSinceNow]);

 STARTTIME

for (i=0; i<100000; i++) {
    NSLog(@"NSLog:%d次",i);
}
   ENDTIME

还有LLDB、Profile等东西需要细细总结,但因每天晚上要跑步就先到这里啦,明天找时间补充~~~    O(∩_∩)O
目录
相关文章
|
Web App开发 Android开发 iOS开发
iOS 调试:通过 Safari/Chrome 调试 WebView
iOS 调试:通过 Safari/Chrome 调试 WebView
6513 0
iOS 调试:通过 Safari/Chrome 调试 WebView
|
1天前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
14 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
6月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
iOS开发 开发者
iOS schem 和 Universal Link 在调试时的踩坑记录
iOS schem 和 Universal Link 在调试时的踩坑记录
iOS schem 和 Universal Link 在调试时的踩坑记录
|
小程序 IDE API
iOS 端预览和调试小程序| 学习笔记
快速学习 iOS 端预览和调试小程序。
iOS 端预览和调试小程序| 学习笔记
|
小程序 IDE API
IOS 端预览和调试小程序|学习笔记
快速学习 IOS 端预览和调试小程序
178 0
IOS 端预览和调试小程序|学习笔记
|
iOS开发
LLDB调试iOS应用程序
如何利用LLDB调试iOS应用程序?本文为您揭晓。
474 1
LLDB调试iOS应用程序
|
NoSQL 编译器 C语言
iOS逆向-day8:LLDB 动态调试
iOS逆向-day8:LLDB 动态调试
800 0
iOS逆向-day8:LLDB 动态调试
|
Web App开发 iOS开发 开发者
mac 下用 safari 调试 iOS 端页面
第一步:打开iphone手机的开发者模式,流程是:【设置】->【Safari】->【高级】->开启【Web检查器】
722 0
mac 下用 safari 调试 iOS 端页面
|
Unix 开发工具 iOS开发
iOS-底层原理 03:objc4-781 源码编译 & 调试
本文主要是通过将objc4-781的源码编译成功,然后在源码中进行调试,便于跟踪方法的底层实现流程
197 0
iOS-底层原理 03:objc4-781 源码编译 & 调试

热门文章

最新文章

  • 1
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 3
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    iOS8 中无需开源库的内置功能一览
  • 7
    iOS7应用开发7:自定义视图、手势操作
  • 8
    IOS小工具以及精彩的博客
  • 9
    Facebook SDK(iOS)初学讲解
  • 10
    iOS - Swift NSPoint 位置
  • 1
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    14
  • 2
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    28
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    34
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 5
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 6
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    143
  • 7
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    235
  • 8
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    90
  • 9
    深入探索iOS开发中的SwiftUI框架
    145
  • 10
    ios样式开关按钮jQuery插件
    60