Trzy dni temu ten kod zadziałał...:(
Etykieta nie zaktualizuje się, aby pokazać załadowaną nazwę użytkownika Facebooka.
//Interface .h
IBOutlet UILabel *namefb;
...
@property(nonatomic, retain)UILabel *namefb;
//Implementation .m
- (void)request:(FBRequest*)request didLoad:(id)result {
NSArray* users = result;
NSDictionary* user = [users objectAtIndex:0];
NSString* name = [user objectForKey:@"name"];
namefb.text=[NSString stringWithFormat:@"Log-in: %@", name];//not update
}
(Podłączyłem też etykietę w IB i zaimportowałem wszystkich delegatów fbconnect )
Kiedy uruchamiam go w debugowaniu, nazwa zmiennej jest prawidłowa, ale namefb.text nie jest aktualizowany..
Jakieś pomysły?
przepraszam za mój angielski..:)
Odpowiedzi:
1 dla odpowiedzi № 1Twój kod zakłada trzy rzeczy:
The
result
obiekt jest typuNSArray
.The
NSArray
ma co najmniej jeden przedmiot, który jestNSDictionary
.Ten obiekt ma klucz "name", który ma
NSString
obiekt z nim powiązany.
Przetestuj każdą z tych trzech rzeczy, być może używając niektórych NSLog()
oświadczenia i powinieneś zobaczyć, gdzie jest problem.
0 dla odpowiedzi nr 2
Upewnij się, że masz połączenie namefb
do obiektu UILabel w programie Interface Builder.Proste uczynienie tej zmiennej gniazdkiem nie spowoduje, że obiekt pojawi się tam z powietrza — musisz stworzyć obiekt (w IB) i podłączyć go do gniazdka (w IB).
Dopóki nie zostanie połączony z obiektem, zmienna będzie przechowywana nil
i wiadomość do nil
nic nie robi.