首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏HelloCode开发者学习平台

    Combine之Backpressure

    Combine 在设计思路和 API 等等很多地方都参考了 ReactiveX,特别是具体到 RxSwift 的实现。 如果你对响应式编程有了一定的认识的话,把你的项目从 RxSwift 迁移到 Combine 应该是非常容易的,不得不说Combine“抄袭”的非常成功。 如果非要说 RxSwift 和 Combine 的最大的不同之处,那就是 RxSwift 到现在为止都没有支持 backpressure,只有RxJava才有这个机制;但是 Combine 中原生对这个特性进行了支持

    81020编辑于 2022-03-15
  • 来自专栏学海无涯

    Combine-Future

    成功的处理 import UIKit import Combine let future = Future<Int, Never> { promise in DispatchQueue.main.asyncAfter let subscription = future.sink(receiveValue: { value in print(value) }) 失败的处理 import UIKit import Combine completion { // 失败的处理 print(error) } }, receiveValue: { _ in // 成功的处理 }) 基本使用 import Combine

    97210发布于 2020-05-20
  • 来自专栏学海无涯

    Combine-实践

    Combine 既可以在 SwiftUI 中使用,也可以在 UIKit 中使用。下面分别实践一下。 SwiftUI 声明式UI + 响应式编程是未来移动开发的趋势,所以 Combine 对于 SwiftUI 来说是不可或缺的一部分,这也是为什么 Combine 会随着 SwiftUI 一起发布。 var body: some View { Text(currentValue) .onReceive(Just("SwiftUI + Combine")) { value in self.currentValue = value } } } UIKit 虽然 SwiftUI + Combine 是一对黄金搭档 ,但是在 UIKit 中 Combine 也可以发挥重要作用。

    1.7K10发布于 2020-05-18
  • 来自专栏学海无涯

    Combine-Publisher

    概念 Combine 中包括Publisher在内的一系列角色都使用协议来进行定义,这是 Swift 面向协议编程思想的具体体现。

    95820发布于 2020-04-09
  • 来自专栏学海无涯

    Combine-Subject

    import Combine // 1 创建PassthroughSubject let subject = PassthroughSubject<String, Never>() // 2 订阅 let ") subject.send(completion: .finished) /* 输出 Hello Combine receiveCompletion */ CurrentValueSubject import Combine // 1 创建CurrentValueSubject,需要初始化一个数据 let subject = CurrentValueSubject<String, Never> ("Hello") // CurrentValueSubject有value属性 print(subject.value) // 2 发送数据 subject.send("Combine") print Combine */

    86820发布于 2020-05-09
  • 来自专栏学海无涯

    Combine-AnyPublisher

    为了对复杂类型的 Publisher 进行类型抹消,Combine 提供了eraseToAnyPublisher()方法将复杂的 Publisher 转化为对应的通用类型AnyPublisher。 案例 import Combine // p1类型: Publishers.FlatMap<Publishers.Sequence<[Int], Never>, Publishers.Sequence import UIKit import Combine class DataPublisher { private var dataPublisher: AnyPublisher<URLSession.DataTaskPublisher.Output receiveCompletion: {_ in }) { (data: Data, response: URLResponse) in } } } Combine

    2.1K20发布于 2020-05-09
  • 来自专栏学海无涯

    Combine-Subscriber

    告诉 Publisher 可以发送多少个数据到 Subscriber func request(_ demand: Subscribers.Demand) } Back pressure Combine Student { var name: String = "" } let stu = Student() // 2 Just发送单个数据 let publisher = Just("Hello Combine ") // 3 assign订阅,设置到foo的bar属性上 publisher.assign(to: \.name, on: stu) print(stu.name) /* 输出 Hello Combine */ Cancellable Combine 中提供了Cancellable这个协议,里面只定义了一个cancel方法,用于提前结束订阅流程。 另外 Combine 中还定义了AnyCancellable类,它也实现了 Cancellable 协议,这个类会在deinit时自动执行cancel方法。

    1.2K20发布于 2020-04-16
  • 来自专栏学海无涯

    Combine-Operator

    默认情况下,订阅某个 Publisher,Subscriber 中的Input和Failure要与 Publisher Output和Failure类型相同,但实际开发中往往是不同的,此时就需要借助Operator进行转换。Operator 遵守 Publisher 协议,负责从数据流上游的 Publisher 订阅值,经过转换生成新的 Publisher 发送给下游的 Subscriber。

    64410发布于 2020-04-30
  • 来自专栏学海无涯

    Combine-Scheduler

    Combine 中如果数据流前面的 Publisher 是在后台线程进行操作,那么在订阅时,当状态的变化会更新 UI 时,需要将数据流中接收数据的线程切换到主线程。 但是实际情况往往是在整个数据流中需要切换 Scheduler,所以 Combine 提供了两个函数来设置 Scheduler。 (在哪里接收数据) import Combine let subscription = Just(1) .map { _ in print(Thread.isMainThread) } (在哪里发布数据) import Combine let subscription = Just(1) .subscribe(on: DispatchQueue.global()) . DispatchQueue.main) .sink { print(Thread.isMainThread) } /* 输出 false true */ 案例 import UIKit import Combine

    79410发布于 2020-05-18
  • 来自专栏cc log

    Combine 基本概念

    订阅者调用request(_:_)来告知愿意接受更多的值,从一个最大的值,到无限制。

    43810编辑于 2022-09-21
  • 来自专栏学海无涯

    Combine理论基础

    Combine 的实现基于观察者模式。 Combine简介 在现代 GUI 编程中,开发者会处理大量事件(包括网络,屏幕输入,系统通知等),根据事件去让界面发生变化。 苹果为了帮助开发者简化异步编程,使代码更加简洁、易于维护,WWDC2019 发布了 Swift 的异步编程框架 — Combine。 核心概念 Combine 框架有三个核心概念 发布者(Publisher):负责发布事件 订阅者(Subscriber):负责订阅事件 操作符(Operator):负责在Publisher和Subscriber 响应式编程与Combine的对应关系.png ? Combine概览.png Combine特点 基于泛型:支持泛型 类型安全:Swift 会检查类型安全问题。

    1.1K10发布于 2020-02-18
  • 来自专栏机器学习/数据可视化

    Pandas函数-combine-update

    combine、update和combine_first 本文介绍的是3个Pandas函数的使用,主要是用于DataFrame的数据更新或者合并 导入库 import pandas as pd import numpy as np combine DataFrame.combine( other, # 另个DataFrame func, # 拼接时使用的函数,可以是自定义的函数,也可以是 .dataframe thead th { text-align: right; } A B 0 1 2 1 1 3 # 合并1:使用自定义函数 df1.combine { text-align: right; } A B 0 NaN 2.0 1 1.0 NaN # 解释参数fill_value # 缺失值填充8 df3.combine DataFrame.combine_first(other) 合并两个数据中某个位置第一次出现的元素;如何其中数据不存在,用空值NaN代替 df13 = pd.DataFrame({'A': [None

    44620编辑于 2023-08-25
  • 来自专栏Activemq

    PHP array_combine() 函数

    php $fname=array("Bill","Steve","Mark"); $age=array("60","56","31"); $c=array_combine($fname,$age); > 定义和用法 array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。 注释:键名数组和键值数组的元素个数必须相同! 语法 array_combine(keys,values); 参数 描述 keys 必需。键名数组。 values 必需。键值数组。 提示和注释 注释:两个参数必须有相同数目的元素。 技术细节

    49920发布于 2021-08-18
  • 来自专栏Reck Zhang

    LeetCode 0175 - Combine Two Tables

    Combine Two Tables Desicription Table: Person +-------------+---------+ | Column Name | Type | +--

    33210发布于 2021-08-11
  • 来自专栏CreateAMind

    Combine SAC with RNN (part1)

    With the combination of sac and rnn. we can solve POMDP problem theoretically, but in practice, we face a lot problem.

    92330发布于 2019-07-10
  • 来自专栏学海无涯

    Combine-常见使用场景

    Apple 推出的 Combine 框架为开发者提供了强大的声明式 API,用于处理异步事件流。 本文将结合常见场景,逐一展示 Combine 的实际用法,包括网络请求、输入控制、定时器、通知监听、异步任务处理以及视图控制器之间的逆向传值。 网络请求 通过 Combine 可以优雅地封装网络请求流程。 let url = URL(string: "https://api.example.com/data")! func processInput(_ input: String) { // 处理输入内容 print("Input: \(input)") } } 定时器 使用 Combine return } self.countLbl.text = count.format }) 通知 借助 NotificationCenter 和 Combine

    53110编辑于 2025-05-23
  • 来自专栏学海无涯

    Combine-Foundation中的Publisher

    为了方便使用,Foundation 为 iOS 开发中的几个常见操作提供了直接获取 Publisher 的方式。

    1.5K30发布于 2020-03-24
  • 来自专栏css小迷妹

    使用“COMB(Combine)”类型设计思路

    使用“COMB(Combine)”类型   COMB数据类型的基本设计思路是这样的:既然UniqueIdentifier数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么我们能不能通过组合的方式

    55400发布于 2021-10-07
  • 来自专栏写写代码

    基于Combine的响应式UIControl

    iOS13后,apple要推广swiftUI带来了Combine,其实apple的响应式框架,亲儿子,在框架底层和Swift层面都进行一定的优化,堆栈和性能会比RxSwift等更优。 随着iOS13的不断普及,Combine会越来越受欢迎。 不过SwiftUI发展必然不会那么快速,项目中还是有很多的UIKit的代码需要维护。 本文不在于介绍Combine的理论知识,而是在于扩展UIKit的UIControl支持响应式编程方式。 二、如何实现? var cancelList: Set<AnyCancellable> = [] let btn_2 = UIButton.init(type: .custom) btn_2.setTitle("combine

    1.7K30编辑于 2023-04-21
  • 来自专栏WflynnWeb

    CSS精简工具-CSS remove and combine

    链接:https://pan.baidu.com/s/1RFegSux12xu1JoMyh-UiyA 提取码:m2i6 复制这段内容后打开百度网盘手机App,操作更方便哦 CSS remove and combine 修改起来也是很麻烦的,小编为大家带来了一款专门解决这种问题的chrome插件它就是[CSS remove and combine],这是一款可以通过创建仅包含正在使用的选择器的新CSS样式表来删除页面上未使用的 CSS remove and combine插件安装使用 1.你可以从chrome应用商店里找到CSS remove and combine插件,如果你的chrome应用商店无法打开,你可以在本站的下方找到 CSS remove and combine插件下载地址,当然你也可以借助于谷歌访问助手或者其他手段访问chrome应用商店。 6.CSS remove and combine插件功能主要有两个部分 ① 下载精简格式化后的CSS: ② 未使用的选择器分析报告: CSS remove and combine插件更新日志

    2.2K30编辑于 2022-10-28
领券