2016-02-15 1 views
0

J'ai un problème avec l'API Flickr. J'ai créé URLStringFlickr Search Photo objectif-c rien retour

+ (NSString *)URLForSearchString:(NSString *)searchString { 
NSString *APIKey = @"*****"; 
NSString *search = [searchString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
return [NSString stringWithFormat:@"https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=%@&tags=%@&per_page=25&format=json&nojsoncallback=1", APIKey, search];} 

Et puis, quand je l'ai touché le bouton de recherche j'ai appelé la demande avec NSURLSession.

- (void)searchFlickrPhotos:(NSString *)text { 
NSString *urlString = [FlickrHelper URLForSearchString:@"Nature"]; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
[request setURL:[NSURL URLWithString: urlString]]; 
[request setHTTPMethod:@"GET"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[UIDevice currentDevice].name forHTTPHeaderField:@"device"]; 
[request setTimeoutInterval:15]; 

NSURLSession *session; 
session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 

NSURLSessionDataTask * sessionDataTask = [session dataTaskWithRequest: request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 
    NSDictionary *temp = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     //For UI updates in main thread 
    }); 
}]; 
[sessionDataTask resume];} 

Je ne peux pas obtenir la réponse du serveur. Mon dictionnaire temporaire est toujours nul ... Souhaitez-vous écrire une solution détaillée? Je serais très reconnaissant pour l'aide!

Répondre

0

Pour résoudre ce problème, d'abord

  1. Vérifiez si données est nul.
  2. Si ce n'est pas nul, utilisez la ligne de crédit suivante pour voir la sortie sur la console

    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    

    NSLog (@ "RÉPONSE:% @", str);

Maintenant, vous devriez avoir un autre aperçu de ce qui se passe réellement.

+1

Merci beaucoup! Cela m'aide beaucoup! – rmnbozhchenko

+0

Vous êtes les bienvenus ami :) –