0
남자! Swift 2에서 Swift 4로 마이그레이션하려고합니다. 프로젝트에서 Bond 및 ReactiveKit 프레임 워크를 사용하고 있습니다. UISearchBar 확장이 있습니다. 그래서 나는이 마이그레이션 문제에 직면하고 있습니다 :일반 매개 변수 'A'를 유추 할 수 없습니다 (Swift 4, Bond 및 ReactiveKit 프레임 워크는 Swift 2에서 마이그레이션)
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/본드의 이전 버전에서 마이그레이션 한 경우
는