- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
伙计们!我正在尝试从 Swift 2 迁移到 Swift 4。项目正在使用 Bond 和 ReactiveKit 框架。我有 UISearchBar 的扩展。所以我面临着从这个迁移的问题:
import UIKit
import Bond
import ReactiveKit
public extension UISearchBar {
public var bnd_delegate: ProtocolProxy {
return protocolProxy(for: UISearchBarDelegate.self, setter: NSSelectorFromString("setDelegate:"))
}
}
public extension UISearchBar {
public var bnd_text: DynamicSubject<UISearchBar, String?> {
let dispatcher: (PublishSubject<Void, NoError>, UISearchBar, String) -> Void = { _ in }
let selector = #selector(UISearchBarDelegate.searchBar(_:textDidChange:))
return DynamicSubject(
target: self,
signal: bnd_delegate.signal(for: selector, dispatch: dispatcher),
get: { $0.text },
set: { $0.text = $1 }
)
}
}
我已经对这段代码做了一些修改:
import UIKit
import Bond
import ReactiveKit
public extension UISearchBar {
public var delegate: ProtocolProxy {
return protocolProxy(for: UISearchBarDelegate.self, setter: NSSelectorFromString("setDelegate:"))
}
public var text: DynamicSubject<String?> {
let dispatcher: (PublishSubject<Void, NoError>, UISearchBar, String) -> Void = { _,_,_ in }
let selector = #selector(UISearchBarDelegate.searchBar(_:textDidChange:))
return DynamicSubject<String?>(
target: self,
signal: delegate.signal(for: selector, dispatch: dispatcher),
get: { $0.text },
set: { $0.text = $1 }
)
}
}
目前我对 DynamicSubject 有错误: Generic parameter 'A' could not be inferred .这很奇怪,因为我检查了我的"dispatch"的值是什么:(for: Selector, dispatch: (PublishSubject< S, NoError>, A, B) -> R) .
我尝试使用多个变量进行调度,但一无所获。在我看来,Xcode 无法识别在 PublishSubject 参数之后开始的任何变量。
我想知道我做错了什么。
最佳答案
如果您曾经从旧版本的 ReactiveKit/Bond 实现语法迁移,这里是如何为您的 UIKit Reactive Extensions 做的:
import UIKit
import Bond
import ReactiveKit
extension ReactiveExtensions where Base: UISearchBar {
var delegate: ProtocolProxy {
return base.protocolProxy(for: UISearchBarDelegate.self, setter: NSSelectorFromString("setDelegate:"))
}
var text: DynamicSubject<String?> {
let selector = #selector(UISearchBarDelegate.searchBar(_:textDidChange:))
let textChanged = delegate.signal(for: selector) { (subj: SafePublishSubject<Void>, _: UISearchBar, _: NSString) in
subj.next(())
}
return dynamicSubject(
signal: textChanged,
get: { $0.text },
set: { $0.text = $1 }
)
}
}
extension UISearchBar: BindableProtocol {
public func bind(signal: SafeSignal<String?>) -> Disposable {
return reactive.text.bind(signal: signal)
}
}
关于swift - 无法推断通用参数 'A'(从 Swift 2 迁移的 Swift 4、Bond 和 ReactiveKit 框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46531319/
我正在尝试使用 CocoaPods 将 ReactiveKit 添加到我的 Xcode 项目中。 这是我的 pods 文件: platform :ios, '8.0' source 'https://
我是响应式编程的新手,我在我的应用程序中使用 Bond 和 ReactiveKit。我现在遇到了一个我不太明白的问题。 问题是在某个页面上我必须上传一些图片,当所有图片都上传后,我想做点什么。 这是我
ReactiveKit 文档 says : How do we use such subject? let name = Subject() name.observeNext { name in pr
我开始使用 Bond 在应用程序中实现基本的 MVVM 模式,并且有一个场景,我想暂时中止对 Observable 上的事件的观察(通过标志)。 然后我想恢复事件的观察,但也想“重播/重新发送”事件给
我在 RxSwift 中有这个: func foo() -> Observable { let subject = RxSwift.ReplaySubject.create(bufferSiz
我正在使用 ReactiveKit 1.x。它有一个非常有用的 ObservableCollection ,它允许您监视对集合的更改。就我而言,我将它与 Dictionary 一起使用 Observa
是否有某种 Computed Observable在 ReactiveKit或者 Bond ? 用原生的 Swift 计算属性初始化一个 Observable 的行为是否相同? 最佳答案 我是这样实现
我之前使用过 RxSwift,但我决定不再使用它,并且能够将所有内容转换为我更熟悉的 Bond。由于 Bond v5 的新变化,我似乎无法弄清楚如何观察 UserDefaults 中的值。以下代码最终
我在静态 tableviewcontroller 中有几个 UITextField。我为每个文本字段指定了一个标签值,这样当用户在键盘上单击下一步时,我可以获得带有下一个标签的文本字段并调用 beco
伙计们!我正在尝试从 Swift 2 迁移到 Swift 4。项目正在使用 Bond 和 ReactiveKit 框架。我有 UISearchBar 的扩展。所以我面临着从这个迁移的问题: impor
我是一名优秀的程序员,十分优秀!