在 SwiftUI 中,实现 ScrollView 滚动到底部的功能,需要一些额外的步骤,因为 SwiftUI 的 ScrollView 默认并不提供直接的滚动控制。可以通过使用 ScrollViewReader 来实现这个功能。ScrollViewReader 提供了一个环境,其中可以使用其 proxy 对象来操作滚动视图的位置。

从MongoDB v4.0开始已经支持事务了,可以用下面代码写事务操作:

先写了份SwiftUI学习教程大纲,涵盖了SwiftUI的所有关键技术和概念,后面有时间慢慢补坑。

在 Combine 框架中,并没有一个名为 flatMapLatest 的直接操作符,这是 ReactiveX(例如 RxSwift)中的一个术语,用于描述一个特定的 flatMap 行为:每当源发布者发出一个新的值,flatMapLatest 会切换到新的发布者,并取消订阅之前的发布者。

如题,这篇文章主要是讨论研究如何定位到按钮点击事件的函数地址。

我们都知道汇编整形数加减运算可以使用add/sub来进行运算,比较简单,但是如果要进行浮点运行,就不能直接用add/sub来进行运算了,比较麻烦一些,所以今天把浮点运算方法记录一下,以免后面用到的时候又忘了。

有时候反编译后发现函数是类的一个方法,因此调用函数的时候有部分参数是通过eax或者esi传进来的,不是直接push进堆栈。这时候我们如果要使用c语言进行调用会比较麻烦,所以我的想法是把这种函数进行二次封装,让eax或者esi作为push的形式传进去,这样c语言调用的时候就可以直接进行函数调用。

我们知道ESP和EBP都是x86的CPU寄存器,在汇编中经常会用到,这两个比较容易搞混,我之前用了下,一段时间没用又记不清两者的区别和用法了,故写一篇文章记录下。

前言

iOS开发也比较长时间了,这么久的从业经验也积累了不少对iOS架构的经验,各种大大小小的项目,好的架构能给后期开发和团队合作带来很大的益处,其目标是构建一个结构清晰、易于维护且可扩展的系统。一个好的架构可以使得应用更加稳定,提高开发效率,降低长期维护的成本,所以在项目建立的时候就要根据项目的复杂度选择好的项目架构,这篇文章主要是来探讨总结一下iOS的架构方面的内容。