IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

Au sein du bloc !


Sujet :

Objective-C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 11
    Points : 13
    Points
    13
    Par défaut Au sein du bloc !
    Bonjour a tous,
    Mon probleme est simple ... J'espere que la solution l'est aussi.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    __block NSString * response; //la fameuse !
     
        [deviceInfo.geocoder reverseGeocodeLocation:deviceInfo.locationProperties completionHandler:
     
         ^(NSArray *placemarks, NSError *error) {
     
             [placemarks copy];
             //Get nearby address
             CLPlacemark *placemark = [placemarks objectAtIndex:0];
     
             NSLog(@"Country : %@",placemark.country);
             response =placemark.country;
         }
         ];
     
        //-----------------------------------------------
        NSLog(@"Response COUNTRY : %@",response); // response vaut NULL
    A l'affichage, response vaut NULL. J'aimerais que response soit egal a placemark.country, qui lui a l affichage vaut France.

    De plus, le bloc semble s executer tout a la fin car j'ai d'abord l'affichage de response puis celui de placemark.country.

    Comment faire ?????! je seche !

    merci d'avance pour vos reponses !

  2. #2
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    Février 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 115
    Points : 139
    Points
    139
    Par défaut
    En fait c'est parce que ton bloc est exécuté en asynchrone
    Du coup quand ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NSLog(@"Response COUNTRY : %@",response); // response vaut NULL
    est exécuté, ton block n'a pas encore été résolu

    Sans être un grand devin je suppose que tu fait une géolocalisation, donc tu te doute que celle ci n'est pas instantanée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    __block NSString * response; //la fameuse !
     
        [deviceInfo.geocoder reverseGeocodeLocation:deviceInfo.locationProperties completionHandler:
     
         ^(NSArray *placemarks, NSError *error) {
     
             [placemarks copy];
             //Get nearby address
             CLPlacemark *placemark = [placemarks objectAtIndex:0];
     
             NSLog(@"Country : %@",placemark.country);
             response =placemark.country;
             NSLog(@"Response COUNTRY : %@",response); // ça affiche une réponse au bout de X secondes 
         }];
     
        //-----------------------------------------------
        NSLog(@"Response COUNTRY : %@",response); // response vaut NULL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bloc au sein d'une méthode
    Par khaigo dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 15/01/2011, 18h56
  2. Réponses: 2
    Dernier message: 25/04/2006, 18h26
  3. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21
  4. [VB6] mise en commentaire d'un bloc de code
    Par JuanDeLaPlaya dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 15h05
  5. Périphérique de bloc
    Par MAGNUM_HEAD dans le forum Administration système
    Réponses: 4
    Dernier message: 20/03/2003, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo