Ios 在Swift 3中更改UITextField中的文本时调用web服务
我正在做这样的事情Ios 在Swift 3中更改UITextField中的文本时调用web服务,ios,swift,swift3,uitextfield,Ios,Swift,Swift3,Uitextfield,我正在做这样的事情 在myviewdidAppear()中,我正在调用我的web服务并获取数据 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(true) if(dm.shouldRefresh) { com.showProgress() self.getStaffData() { (status) in self.com.re
viewdidAppear()
中,我正在调用我的web服务并获取数据
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
if(dm.shouldRefresh)
{
com.showProgress()
self.getStaffData() { (status) in
self.com.removeProgress()
if(status)
{
if(self.arrayDirectory != nil && self.arrayDirectory.count>0)
{
print("-----Directory data loaded----")
self.arrayPreviouslyLoadedArray=self.arrayDirectory
if(self.isfirstTime)
{
self.setupFaces()
self.isfirstTime=false
}
else
{
self.facesCarousel.reloadData()
}
}
else
{
self.addEmptyLabel()
}
}
else
{
self.com.showAlertMessage()
self.addEmptyLabel()
}
}
self.dm.shouldRefresh=false
}
}
UITextField
func searchTextFieldEditingChanged()
{
if(txtSearch.text != "")
{
self.searchText=txtSearch.text
//NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(search), object: nil)
self.search()
}
else
{
self.arrayDirectory=self.arrayPreviouslyLoadedArray
facesCarousel.reloadData()
}
}
func search()
{
self.isSearching=true
self.isfound=false
//let exists = NSPredicate(format: "DisplayName2 CONTAINS[cd] \(searchText!)")
let arrayTofilter:[[String:Any]]=self.arrayDirectory as! [[String : Any]]
let aList = arrayTofilter.filter {
( $0 ["DisplayName2"] as! String).range(of: searchText!, options: [.diacriticInsensitive, .caseInsensitive]) != nil
}
if(aList.count>0)
{
arrayDirectory=aList
facesCarousel.reloadData()
isfound=true
}
else
{
repeat
{
self.loadAgain()
}
while isfound==false
}
}
但这并不像我预期的那样有效。请给我一个更好的解决方案。
谢谢 你不需要旗帜。为了实现您的目标,您只需在找不到数据时反复调用搜索函数。这是伪代码
func search() {
array.findYourObject
if found {
tableView.reloadData()
} else {
self.getStaffData() { (status) in
array += newlyFetched20Results
search()// You probably want to add some condition here to stop it from searching forever
}
}
}
请格式化您的代码。这是unreadable@cb89很抱歉我更新了