摘要:
很多iOS开发开始学习结构化并发时已经用过了很多年Grand Central Dispatch,虽然从思想上二者区别很大,但是利用熟悉的东西去理解新的事物有助于提升学习理解的效率,接下来是这Grand Central Dispatch常见使用代码和转换代码。 异步 // 原代码 DispatchQu 阅读全文
摘要:
withUnsafePointer 不说话,先放代码 withUnsafeBufferPointer(to: a) { point in let address = UnsafeRawPointer(point) let addressInt = Int(bitPattern: address) p 阅读全文
摘要:
@available(iOS 17, *) #Preview(traits: .portrait) { return UIView() } 最重要的是不知道Macro是如何做版本限制的。 订阅RSS 阅读全文
摘要:
前提: Xcode 16.0 beta 设置 Scheme设置中勾选Malloc Scribble、Malloc Stack Logging。 这么做是为了在Memory Graph、Profile中追溯数据在哪句代码生成。 此设置会导致App硬盘占用异常增多,调试完毕之后需要把选项关闭。 Allo 阅读全文
摘要:
开发调试时,我们发现bug时常首先是从UI显示发现异常,下一步才会去定位UI相关连的数据的。XCode有给我们提供一系列debug工具,但是很多人可能还没有形成一套稳定的调试流程,因此本文尝试解决这个问题,顺便提出一个暴论:UI显示异常问题只需要两个步骤就能完成定位工作的80%: 定位异常 UI 组 阅读全文
摘要:
dispatch_sync执行了两件事:把代码块放入指定线程的任务队列中、堵塞当前线程直到代码块执行结束,如果出现了堵塞的线程和代码块所在的线程为同一线程的话,这个时候代码无法在此线程执行继续下去,即造成了死锁。 - (void)viewDidLoad { [super viewDidLoad]; 阅读全文
摘要:
在某些场景下(比如自动化打包等),我们需要从终端来读取到iOS项目的数据,首先先上代码 xcodebuild -showBuildSettings -target 项目target 但有时候我们需要将其转为字符串的话,需要在两边加上这个符号` OUTPUT='xcodebuild -showBuil 阅读全文
摘要:
在UIKit转到SwiftUI的过渡时期中,项目中会遇到不得不用到二者混合使用的情景,苹果这时提供了相关API让iOSer更好地适应这个时期。 UIViewControllerRepresentable协议 此协议属于SwiftUI,新建一个实现此协议的结构体,在其中传入UIViewControll 阅读全文
摘要:
文章需要在了解终端、vim基本使用的前提下观看。 在一个文件里批量操作 在项目开发过程中,我们可能会需要批量删除带有关键词的对应行,如果是在同一个文件里面的话执行此操作的话,比如文件中文本如下: 我们用vim在normal模式下: 执行后的结果为: 文件夹及其子文件夹所有文件进行批量操作 日常开发过 阅读全文
摘要:
如果我们需要设置一个view在另一个view的右边缘距离一定距离的地方,利用Masonry这么写: offset可以让我们在设置视图之间相对位置时起到很大作用,但是也有很多情况下用不到,比如size、center等等,而调查Maronry的底层方法,可以看到和offset类似的方法还有很多: off 阅读全文