2012-09-05 1 views
7

Sto riscontrando problemi nel tentativo di aggiornare il mio SDK di Facebook all'ultima versione di produzione (FacebookSDK-3.0.8.pkg - Facebook SDK 3.0 per iOS (aggiornamento 1) [21 agosto 2012]) .Facebook SDK FBRequest requestForMe Tipi di puntatore incompatibili

Sto seguendo il tutorial su this page.

Mi sono imbattuto in diversi problemi cercando di far funzionare il codice, non è così facile come proclama di essere nel tutorial. Posso aprire la mia sessione, ma non riesco a ottenere la richiesta di lavoro.

- (IBAction)facebookTapped:(id)sender { 
[FBSession openActiveSessionWithPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
    if(error) { 
     NSLog(@"Error opening session: %@", error); 
     return; 
    } 

    if(session.isOpen) { 
     NSLog(@"session is open"); 

     FBRequest *me = [FBRequest requestForGraphPath:@"me"]; 
     [me startWithCompletionHandler:^(FBRequestConnection *connection, 
             NSDictionary<FBGraphUser> *my, 
             NSError *error) { 
      NSLog(@"My name: %@", my.first_name); 
     }]; 
    } 

    }]; 
    } 

La mia console visualizza che la sessione è aperta se rimuovo la chiamata a FBRequest requestforGraphpath. Se lo lascio in, ricevo l'errore "tipi di puntatore blocco incompatibili inizializzazione 'void (^) (struct FBRequestConection , struct NSDictionary, struct NSError *)', prevede 'FBRequestHandler'

Ora quello che mi ha sconcertato è che questo è il codice esatto mostrato nel tutorial, excpet che ho cambiato fuori [FBRequest requestForMe] provando diversi approcci. nessuno ha funzionato.

qualcuno può fare luce su questo per me?

Grazie.

+0

Dal momento che il limite di tempo di 48 ore è passato, puoi pubblicare la modifica come una risposta ora? –

risposta

7

Sono stato in grado di risolvere questo problema da Changi ng loro blocco originale nel tutorial di:

if (session.isOpen) { 
FBRequest *me = [FBRequest requestForMe]; 
[me startWithCompletionHandler: ^(FBRequestConnection *connection, 
            NSDictionary<FBGraphUser> *my, 
            NSError *error) { 
    self.label.text = my.first_name; 
}]; 
} 

a

if(session.isOpen) { 
     FBRequest *me = [FBRequest requestForMe]; 
     [me startWithCompletionHandler:^(FBRequestConnection *connection, 
             id result, 
             NSError *error) { 
      NSDictionary<FBGraphUser> *my = (NSDictionary<FBGraphUser> *) result; 
      NSLog(@"My dictionary: %@", my.first_name); 
     }]; 
    }