Obsolète: 'sendAsynchronousRequest:file d'attente:completionHandler:" dans iOS9
J'ai ma propre classe pour faire http appels, mais maintenant dans iOS9 cette méthode est obsolète:
[NSURLConnetion sendAsynchronousRequest:queue:completionHandler:]
Je suis en train de tester la nouvelle
[NSURLSession dataTaskWithRequest:completionHandler:]
mais Xcode donner une erreur car il n'a pas trouvé cette méthode.
Xcode avertissement du compilateur avec obsolètes ligne:
'sendAsynchronousRequest:queue:completionHandler:' is deprecated: first deprecated in iOS 9.0 - Use [NSURLSession dataTaskWithRequest:completionHandler:] (see NSURLSession.h
Erreur avec la nouvelle méthode:
No known class method for selector 'dataTaskWithRequest:completionHandler:'
Méthode:
-(void)placeGetRequest:(NSString *)action withHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *error))ourBlock {
NSString *url = [NSString stringWithFormat:@"%@/%@", URL_API, action];
NSURL *urlUsers = [NSURL URLWithString:url];
NSURLRequest *request = [NSURLRequest requestWithURL:urlUsers];
//[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:ourBlock];
[NSURLSession dataTaskWithRequest:request completionHandler:ourBlock];
}
Une idée?
OriginalL'auteur EnriMR | 2015-07-04
Vous devez vous connecter pour publier un commentaire.
dataTaskWithRequest:completionHandler:
est une méthode d'instance, et non pas une méthode de classe. Vous devez configurer une nouvelle session ou de l'utilisation partagée:Dépend de votre cas. Depuis que vous avez utilisé
NSURLConnection
jusqu'à présent, vous pouvez utiliser la session partagée. Apple utilise en interne pourNSURLConnection
depuis iOS 7.Pourriez-vous donner plus de détails à propos de la classe à utiliser pour configurer une nouvelle session?
Jetez un oeil à la documentation. Vous créez une session à l'aide de la méthode de fabrique, en fournissant un délégué et d'une session de configuration de l'objet. Mettre en œuvre le délégué à être informé des événements et de gérer des choses comme les défis de l'authentification.
OriginalL'auteur Leo Natan
OriginalL'auteur Kishor Kumar Rawat
Si vous utilisez le AFNetworking de la bibliothèque, vous pouvez utiliser une session, puis mis en place pour les demandes de support à l'arrière-plan. En utilisant cette approche, j'ai résolu deux problèmes:
1) AFNetworking méthode n'est pas déconseillée
2) le traitement de la requête sera fait, même si la demande entre l'état d'arrière-plan
J'espère que cela aide pour des problèmes similaires. C'est une alternative.
OriginalL'auteur Douglas Frari
OriginalL'auteur deepak vaishnav