摘要: 开发调试时,我们发现bug时常首先是从UI显示发现异常,下一步才会去定位UI相关连的数据的。XCode有给我们提供一系列debug工具,但是很多人可能还没有形成一套稳定的调试流程,因此本文尝试解决这个问题,顺便提出一个暴论:UI显示异常问题只需要两个步骤就能完成定位工作的80%: 定位异常 UI 组 阅读全文
posted @ 2023-04-19 01:18 MrYu4 阅读(193) 评论(0) 推荐(0) 编辑
摘要: dispatch_sync执行了两件事:把代码块放入指定线程的任务队列中、堵塞当前线程直到代码块执行结束,如果出现了堵塞的线程和代码块所在的线程为同一线程的话,这个时候代码无法在此线程执行继续下去,即造成了死锁。 - (void)viewDidLoad { [super viewDidLoad]; 阅读全文
posted @ 2022-11-10 18:51 MrYu4 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 在某些场景下(比如自动化打包等),我们需要从终端来读取到iOS项目的数据,首先先上代码 xcodebuild -showBuildSettings -target 项目target 但有时候我们需要将其转为字符串的话,需要在两边加上这个符号` OUTPUT='xcodebuild -showBuil 阅读全文
posted @ 2022-11-03 09:16 MrYu4 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 在UIKit转到SwiftUI的过渡时期中,项目中会遇到不得不用到二者混合使用的情景,苹果这时提供了相关API让iOSer更好地适应这个时期。 UIViewControllerRepresentable协议 此协议属于SwiftUI,新建一个实现此协议的结构体,在其中传入UIViewControll 阅读全文
posted @ 2022-09-29 21:45 MrYu4 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 文章需要在了解终端、vim基本使用的前提下观看。 在一个文件里批量操作 在项目开发过程中,我们可能会需要批量删除带有关键词的对应行,如果是在同一个文件里面的话执行此操作的话,比如文件中文本如下: 我们用vim在normal模式下: 执行后的结果为: 文件夹及其子文件夹所有文件进行批量操作 日常开发过 阅读全文
posted @ 2022-04-01 21:42 MrYu4 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 如果我们需要设置一个view在另一个view的右边缘距离一定距离的地方,利用Masonry这么写: offset可以让我们在设置视图之间相对位置时起到很大作用,但是也有很多情况下用不到,比如size、center等等,而调查Maronry的底层方法,可以看到和offset类似的方法还有很多: off 阅读全文
posted @ 2022-03-20 21:56 MrYu4 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 原文通过对Objective-C发展史、Objective-C中Runtime的动态派发,C语言的直接派发进行铺垫介绍,引出了direct methods这个“新特性”(文章写于2019年)。 定义 看起来是个OC的方法,却和C方法一样,当被调用时,他是会直接使用而不是通过objc_msgSend。 阅读全文
posted @ 2022-03-13 14:55 MrYu4 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 有个需求,要求模仿微信做表情下雨的动画,一开始想用CAEmitterLayer,实现的代码如下: 这时候我们能看到效果如此: 这个时候其实我们做到了以下几点 view显示5秒并删除 雪花从上向下降落,而且速度是匀速的view高度/5秒 雪花每秒产生1颗 雪花在不超出左右边缘之内随机产生 但是这个效果 阅读全文
posted @ 2022-03-03 12:20 MrYu4 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 程序环境 Xcode 13.2.1 “写代码要经常写注释。”虽然很多人不以为然,但是在使用Xcode的时候,我们在写注释的时候稍微注意一下格式的话,Xcode会给我们带来额外的正反馈,而所谓“正反馈”就是我们的注释会自动转换成帮助文档,显示在quick help上。 简单的注释 这里做注释要用三个斜 阅读全文
posted @ 2022-02-27 19:57 MrYu4 阅读(217) 评论(0) 推荐(0) 编辑
摘要: Masonry是iOS开发中常见的视图约束框架,但是有人对他的使用还是浅尝辄止,接下来会提出几点比较少见但是又十分便捷的使用技巧。 mas_greaterThanOrEqualTo mas_greaterThanOrEqualTo顾名思义是不直接设置该约束,但是限制该约束不要超出边界,比如我们想让U 阅读全文
posted @ 2022-02-25 10:44 MrYu4 阅读(1126) 评论(0) 推荐(0) 编辑