2015-02-28 1 views
-2

Avant de commencer, j'ai parcouru toutes les questions relatives à ce problème. n'a pas aidé.UIRefreshControl: sélecteur non reconnu envoyé à instance - absoluteURL

Je veux actualiser le contenu json de ma tableView qui sont récupérés à partir d'un site Web.

L'URL de chaque catégorie provient d'un fichier différent contenant toutes les catégories répertoriées.

Le code qui va chercher le contenu est ce

func animalSelected(animal: Animal) { 

var request: NSURLRequest = NSURLRequest(URL: animal.url!) 

    self.refresh(animal.url!) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(animal.url!, completionHandler: {data, response, error -> Void in 
     // println("Task completed") 
     if(error != nil) { 
      // If there is an error in the web request, print it to the console 
      println(error.localizedDescription) 
     } 
     var err: NSError? 

     var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary 
     if(err != nil) { 
      // If there is an error parsing JSON, print it to the console 
      println("JSON Error \(err!.localizedDescription)") 
     } 
     let results: NSArray = jsonResult["posts"] as NSArray 
     self.didReceiveResults(jsonResult) 

    }) 
    task.resume() 

    delegate?.collapseSidePanels?() 

} 

func didReceiveResults(results: NSDictionary) { 
    var resultsArr: NSArray = results["posts"] as NSArray 
    dispatch_async(dispatch_get_main_queue(), { 
     self.tableData = resultsArr 
     self.tableView.reloadData() 
    }) 
} 

Ma méthode de viewDidLoad et la méthode refresh est comme indiqué ci-dessous

override func viewDidLoad() { 
    super.viewDidLoad() 
      refresher = UIRefreshControl() 
      refresher.attributedTitle = NSAttributedString(string: "Pull to Refresh") 
      refresher!.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged) 

      self.tableView.addSubview(refresher) 
} 

func refresh(categoryUrl : NSURL) { 

    var request: NSURLRequest = NSURLRequest(URL: categoryUrl) 

    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(categoryUrl, completionHandler: {data, response, error -> Void in 
     if(error != nil) { 
      // If there is an error in the web request, print it to the console 
      println(error.localizedDescription) 
     } 
     var err: NSError? 

     var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary 
     if(err != nil) { 
      // If there is an error parsing JSON, print it to the console 
      println("JSON Error \(err!.localizedDescription)") 
     } 
     let results: NSArray = jsonResult["posts"] as NSArray 
     self.didReceiveResults(jsonResult) 

    }) 
    task.resume() 
    self.refresher.endRefreshing() 

      } 

je dois rafraîchir le contenu de la même URL qui a été sélectionné, c'est-à-dire actualiser la même catégorie.

Je reçois cette erreur: [UIRefreshControl absoluteURL]: unrecognized selector sent to instance 0x7fa0b3d73750

Je pense qu'il est quelque chose lié à absoluteURL. Bt ne sais pas quel est-il ..

plsss plssssss plssss aider

Répondre

0

Vous essayez d'obtenir le absoluteURL d'un UIRefreshControl que vous pensez est en fait un NSURL. Pour être exact, votre expéditeur dans refresh(categoryUrl: NSURL) est le UIRefreshControl pas NSURL.

+0

ok .. bt puis comment shd je passe l'url de la fonction animalSelected pour rafraîchir() –

+0

pouvez-vous pls m'aider à comprendre ce qui doit être fait pour accomplir ce que je suis en train de faire –