gpt4 book ai didi

swift - 使用解析快速搜索栏

转载 作者:行者123 更新时间:2023-11-30 13:45:57 25 4
gpt4 key购买 nike

您好,我一直在观看视频来执行此代码,但没有任何效果我尝试播放代码,但仍然没有发现问题所在。问题是我没有任何错误,当我运行代码时,它没有在 tableView 中显示结果。我想做的是我想在解析用户列表中搜索。这是代码:

func searchBarSearchButtonClicked(searchBar: UISearchBar){
searchBar.resignFirstResponder()
print("search word =\(searchBar.text)")

let usernameQuery = PFQuery(className: "User")
usernameQuery.whereKey("username", containsString: searchBar.text)

usernameQuery.findObjectsInBackgroundWithBlock {
(results: [PFObject]?, error: NSError?) -> Void in

if error != nil {
let myAlert = UIAlertController(title:"Alert", message:error?.localizedDescription, preferredStyle:UIAlertControllerStyle.Alert)

let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil)

myAlert.addAction(okAction)

self.presentViewController(myAlert, animated: true, completion: nil)

return
}
if let objects = results! as? [PFObject]{
self.searchResults.removeAll(keepCapacity: false)

for object in objects{
let usernameid = object.objectForKey("username") as! String
self.searchResults.append(usernameid)
}
dispatch_async(dispatch_get_main_queue()){
self.myTable.reloadData()
self.mySearchBar.resignFirstResponder()
}
}
}

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let myCell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath)

myCell.textLabel?.text = searchResults[indexPath.row]

return myCell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
mySearchBar.resignFirstResponder()
}

func searchBarCancelButtonClicked(searchBar: UISearchBar){
mySearchBar.resignFirstResponder()
mySearchBar.text = ""
}


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return searchResults.count
}

}

最佳答案

TL;DR

您没有从 UISearchBar 中解开搜索字符串。

详细信息

查看 Apple's official documentation for UISearchBar 时,那么可以看出text属性的类型是String?

当使用这些知识查看代码时,以下行看起来有点可疑,因为您没有执行任何类型的展开:

usernameQuery.whereKey("username", containsString: searchBar.text)

可以通过简单的 Playground 测试进一步研究这一点:

import UIKit

let searchBar = UISearchBar()
searchBar.text = "Kumuluzz"
let output = searchBar.text
print("Output: \(output)")

这个 Playground 上的输出(在右侧边栏中看到)如下:

"Output: Optional("Kumuluzz")\n"

这意味着我的用户名必须是Optional("Kumuluzz"),以便与您在User 库中的查询相匹配。

总之,对 text 属性应用某种展开。

关于swift - 使用解析快速搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938690/

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