gpt4 book ai didi

ios - 不知何故结合搜索 Controller 不起作用,知道吗?

转载 作者:行者123 更新时间:2023-12-01 16:12:55 27 4
gpt4 key购买 nike

由于某种原因,当我在搜索字段中输入时,它不会打印出 Xcode 控制台“str”。我在这里想念什么?我按照他的教程 https://www.letsbuildthatapp.com/course_video?id=5232

import UIKit

class SearchViewController: UIViewController {

let searchController = UISearchController(searchResultsController: nil)

var sink: Any?

override func viewDidLoad() {
super.viewDidLoad()

setupSearchBarListener()

navigationItem.searchController = searchController

navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.title = "Contact"

searchController.obscuresBackgroundDuringPresentation = false

view.backgroundColor = .white
}

fileprivate func setupSearchBarListener() {

let publisher = NotificationCenter.default.publisher(for: UISearchTextField.textDidChangeNotification, object: searchController.searchBar.searchTextField)
publisher
.map {
($0.object as! UISearchTextField).text
}
.debounce(for: .milliseconds(500), scheduler: RunLoop.main)
.sink { (str) in
print(str ?? "")
}

}
}

最佳答案

您正在使用 .sink 创建一个 Sink 对象方法,但您没有将其存储在任何地方。因此它会立即消失,并且没有可发布到的管道。

此处正确的程序是将实例属性键入为 Set<AnyCancellable>并调用store(in:)在您的水槽上将其存储在该实例属性中。现在它会持续存在,并且会有一些东西可以打印出来。

关于ios - 不知何故结合搜索 Controller 不起作用,知道吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60241335/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com