我们来实现一个无限滚动列表。
SwiftUI专辑079-实现一个无限滚动列表
· 预计阅读2分钟
我们来实现一个无限滚动列表。
如果你有一些老的代码使用completion block的方式处理异步,我们可以将其改为使用async/await的方式。
下拉刷新的功能很常见,在swiftui中也有支持,并且支持async/await。
async await让网络请求变得简单了,我们不用再使用回调机制了。
我们来看看一个sleep5秒的async函数。
本章,我们将学习调试Combine Stream的三种方法。我承认这三个都有点基础。但是,它们是一个起点,应该足以帮助我们了解如何处理stream中的错误。
我们将使用OpenWeather上的Api创建一个天气App,显示最近5天的天气。
本章,我们将实现一个简单的注册页面,其中包含一个用户名输入框和两个密码输入框,一个用于密码,另一个用于确认密码。
用户名最少6个字符,密码至少有八个字符,且由数字、大写字母、小写字母和特殊字符组成,例如!, # , $等等。此外,密码和确认密码必须匹配。当所有字段都有效时,我们可以进入下一页。
当我们subscribe一个publisher后,这个结果需要存储到某个地方,通常我们都是通过调用.store
方法存储在某个 AnyCancellable Set中。但是每个都这么用,可能会显得有点重复,我们将用@ResultBuilder来包裹所有的subscribtion,将所有AnyCancellable放到同一个set中。
我们来看一个定时器的例子。
我们还是来看个CoreLocation的例子。