2016-01-16 6 views
0

Моя проблема в том, что когда imageFound == false, он печатает «Нет результатов !!!» немедленно, но для текста меток требуется примерно 15 секунд. Я не знаю, почему это отстает, но мне нужна помощь, пытаясь i = положить ее в диапазон 5 секунд или меньше.Отложенный ответ при изменении текста ярлыка (Swift)

код ниже ...

if let textFieldContent = textField.text{ 
     do { 

      try WikiFaceRec.faceForPerson(textFieldContent, size: CGSize(width: 200, height: 250), completion: {(image:UIImage?, imageFound:Bool!) ->() in 
       if imageFound == false{ 
        self.faceImageView.alpha = 0 
        self.realLoadingLbl.text = "No Results Found. Check your spelling and try again." 
        print("NO RESULTS!!!!!") 

       } 
       if imageFound == true{ 
        self.realLoadingLbl.alpha = 0 
        dispatch_async(dispatch_get_main_queue(), {() -> Void in 
         self.faceImageView.image = image 

         self.faceImageView.alpha = 1 
         WikiFaceRec.centerImageViewOnFace(self.faceImageView) 
        }) 

       } 
      }) 
     } catch WikiFaceRec.WikiFaceError.CouldNotDownloadImage { 
      print("Wikipedia not currently open") 

     } catch { 
      print("error") 
      self.faceImageView.alpha = 0 
      self.realLoadingLbl.text = "No Results Found. Check your spelling and try again." 
      print("NO RESULTS") 
     } 
    } 
    return true 
} 

ниже код с self.realLoadingLbl.text = «Результаты не найдены. Проверьте правильность написания и повторите попытку.» это часть, которая требует немного изменения. И да, еще раз «НИКАКИХ РЕЗУЛЬТАТОВ !!!» печатается немедленно.

if imageFound == false{ 
    self.faceImageView.alpha = 0 
    self.realLoadingLbl.text = "No Results Found. Check your spelling and try again." 
    print("NO RESULTS!!!!!") 
} 

ответ

2

Вы должны обрабатывать imageFound==false случай, подобный true случае с точки зрения dispatch_async:

if !imageFound { 
    dispatch_async(dispatch_get_main_queue()) { 
     self.faceImageView.alpha = 0 
     self.realLoadingLbl.text = "No Results Found. Check your spelling and try again." 
     print("NO RESULTS!!!!!") 
     self.faceImageView.alpha = 0      
    } 
} 
+0

спасибо! Это сработало –

Смежные вопросы