分享一个好用的 Xcode 断点技巧

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

前面介绍过一些关于利用断点的内容,感兴趣可以去看下:

你知道 Xcode 支持设置"列断点"吗?

如何避免过早加载控制器 view

如何检测控制器循环引用

最近遇到一个需求,页面上有个 UITextField,每次进到这个页面需要输入相同的内容,每次重复比较麻烦,直接写死又没办法提交到 Git,突然想到了用断点来解决,今天就来讲讲这个技巧。

还有个类似的情况是登录页面,每次输入用户名密码都很麻烦,今天的 Demo 以这个场景为例来介绍。

页面代码

首先模拟一个登录页面,我简单写了一个:

less 复制代码
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        
        let userName = createTextField(frame: CGRect(x: 0, y: 100, width: 200, height: 35), placeholder: "请输入用户名")
        view.addSubview(userName)
        
        let password = createTextField(frame: CGRect(x: 0, y: 155, width: 200, height: 35), placeholder: "请输入密码")
        view.addSubview(password)
        
        createLoginButton()
    }
}

看下效果:

巧用断点

然后在两个 TextField 创建完成后创建一个断点:

然后双击这个断点,来尝试自动输入用户名和密码。

点击 Add Action 按钮,Action 类型选择 Debugger Command,下边的输入框中输入:

expr userName.text = "iOS 新知"

expr 命令可以修改变量的值,这行命令就是为 userName 设置一个字符串。

然后记得勾选下边这个 Options,这可以让断点不中断我们的代码:

此时我们重新运行项目,可以看到,用户名的输入框已经被自动填充了:

我们按照同样的方法,再点击 Add Action 创建一个命令,把密码也填充上去:

再次运行项目,可以看到,用户名和密码都被自动填充上去了。

expr 命令不仅可以设置变量的值,还可以直接调用方法,我们再创建一个 Action,输入 expr self.login() 来直接调用登录方法:

再次运行代码,就可以直接填充用户名 + 填充密码 + 自动调用登录方法了,非常方便。

Xcode 断点是一个很棒的工具,有非常多强大的功能,以后会分享更多,希望今天分享这个技巧能够帮助到你。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
MDM.Plus16 小时前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店
韩曙亮18 小时前
【Flutter】Flutter 进程保活 ③ ( 屏幕常亮设置 | Flutter 禁止息屏、关闭自动锁屏、屏蔽系统屏保 )
android·flutter·ios·屏幕常亮·禁止息屏
2501_9159090621 小时前
IPA 深度混淆是什么意思?从混淆强度到实际效果的解读
android·ios·小程序·https·uni-app·iphone·webview
逸铭1 天前
Day 8:Preload 是什么?——在别人的网页里打黑工还要合规
前端·客户端
apihz1 天前
经纬度制作高清卫星图片免费 API 接口详解
开发语言·ios·swift
黄林晴1 天前
KMP 正式支持 SwiftPM:CocoaPods 迁移配置指南
android·ios·kotlin
Tisfy2 天前
iOS:压缩和解压live图(.livp)——百度一刻相册+百度网盘识别支持
ios·百度网盘·livp·live图·一刻相册
唐诺2 天前
Objective-C 之 KVC 详解
ios·objective-c·kvc
00后程序员张2 天前
iOS 打包方式汇总 从 Xcode Archive 到轻量级工具链的 IPA 构建
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
sweet丶2 天前
Swift 黑魔法:`@dynamicMemberLookup`
swift·rxswift