分享一个好用的 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新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
终端安全笔记6 小时前
描述文件、企业证书、MDM 不是三个名字,是三层
android·ios·智能手机
传奇开心果编程7 小时前
【SwiftUI入门练中学】第1课 从零开始
学习·ui·ios·swiftui·swift
丿Wayne13 小时前
iOS Token 刷新实战(Actor 避免并发重复刷新)
ios·swift·token·actor·swift并发
终端安全笔记1 天前
iOS 27 给了租赁一个新工具,但它只认受监督的设备
android·网络·安全·ios
大熊猫侯佩1 天前
独立 App 首发完成 iPhone Duo 展开态适配
ios·swiftui·swift
光影少年1 天前
setImmediate 和 setTimeout(0) 的区别
android·前端·react.js·ios·前端框架
2501_916008891 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
HouWan2 天前
Flutter: MediaQuery.of(context) 为什么可能拖慢页面?
android·flutter·ios
SoaringHeart2 天前
Swift 进阶&封装:仿 Get 给SwiftUI 添加路由导航能力
swiftui·swift
用户38034165882972 天前
Broadcast Extension 里的 Live Activity:一次跨进程妥协
ios·音视频开发