相关疑难解决方法(0)

快速语言中'#'标记的含义是什么?

我见过这样的代码:

func hello(name: String, #helloMessage: String) -> String { 
    return "\(helloMessage), \(name)." 
} 
Run Code Online (Sandbox Code Playgroud)

我的问题是#参数名称之前的标记是什么意思?这是否意味着在调用函数时必须指定参数?

此外,任何人都可以告诉我没有这个#标记的功能吗?代码示例非常受欢迎.

swift

24
推荐指数
2
解决办法
7771
查看次数

键入Swift时搜索

我在你用Swift编写的时候尝试实现搜索.它已经工作但我需要一些调整.我发送每封输入的信件

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {

    let debouncedFindUser = debounce(
        Static.searchDebounceInterval,
        Static.q,
        findUser)

    debouncedFindUser()
}
Run Code Online (Sandbox Code Playgroud)

对后端的请求.

func findUser() -> () {
    SearchService.sharedInstance.getUser(0, numberOfItems: 100,
        searchString: searchUserBar.text.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
        ,
        success: {SearchUserDto -> Void in
            if self.searchUserBar.text != nil {
                self.updateSearch()
            }
        },
        failure: {NSError -> Void in

    })
}
Run Code Online (Sandbox Code Playgroud)

我尝试了在这里找到的Debounce的实现如何去抖动方法调用?

我的问题:

如果在一定时间内触发了方法调用,我想"重启"它.所以让我们夸张一点.

请求仅在搜索文本未键入2秒后才开始.因此,如果我是一个快速的typer并且每0.5秒输入一个字母,除非我暂停至少2秒钟,否则永远不会触发请求.

search ios swift

5
推荐指数
1
解决办法
3054
查看次数

在 Swift 中进行节流而不进行反应

是否有一种简单的方法可以在反应式编程中实现 Throttle 功能,而无需使用 RxSwift 或类似框架。

我有一个 textField 委托方法,我不想在每次插入/删除字符时触发它。

如何使用香草粉底做到这一点?

throttling reactive-programming ios swift

2
推荐指数
1
解决办法
3693
查看次数

取消 Firebase 功能

是否可以在请求期间取消 Firebase HTTPS Callable 功能?我有一个带有一些预测搜索的功能。每次用户在搜索字段中输入字符时都会调用它。

代码:

func startSearch(_ query: String, completion: @escaping (_ results: [SearcheResults]) -> Void) {

    let data = [
        "query": query
    ]

    functions.httpsCallable("startSearch").call(data) { (result, error) in

        if error != nil {
          completion([])
      } else if let data = result?.data {
            // some data manipulations
            completion(elements)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

或者也许以某种方式驳回较早的完成?因为现在,如果用户非常快速地输入文本,例如“柏林” - 完成将触发 6 次。我想有办法取消一个功能或取消以前的完成。

提前致谢。

ios firebase swift google-cloud-functions

1
推荐指数
1
解决办法
354
查看次数