Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不知怎么的,搜索控制器坏了,你知道吗?_Ios_Swift_Xcode_Uikit_Combine - Fatal编程技术网

Ios 不知怎么的,搜索控制器坏了,你知道吗?

Ios 不知怎么的,搜索控制器坏了,你知道吗?,ios,swift,xcode,uikit,combine,Ios,Swift,Xcode,Uikit,Combine,由于某些原因,当我在搜索字段中键入时,它不会打印出Xcode控制台的“str”。我错过了什么?我遵循他的指导 您正在使用.Sink方法创建一个Sink对象,但您没有将其存储在任何位置。因此,它立即消失,并且没有可发布到的管道 这里正确的过程是将实例属性键入为Set,并在接收器上调用store(in:),将其存储在该实例属性中。现在,它将持续存在,并将有一些内容打印出来。您还可以将其存储在数组中(或者实际上存储在任何可取消的的任何随机访问集合中)。它不必是集合,除非您需要集合行为。 import

由于某些原因,当我在搜索字段中键入时,它不会打印出Xcode控制台的“str”。我错过了什么?我遵循他的指导


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


这里正确的过程是将实例属性键入为
Set
,并在接收器上调用
store(in:)
,将其存储在该实例属性中。现在,它将持续存在,并将有一些内容打印出来。

您还可以将其存储在
数组中(或者实际上存储在
任何可取消的
的任何
随机访问集合中)。它不必是
集合
,除非您需要
集合
行为。
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 ?? "")
        }

    }
}