Reputation: 7633
Three days ago this code worked...:(
The label will not update to show the loaded facebook username.
//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
}
(I have also connected the label in IB and imported all fbconnect delegates )
When I run it in debug, the variable name is right, but namefb.text does not get updated..
Any ideas?
sorry for my english..:)
Upvotes: 0
Views: 411
Reputation: 96333
Make sure you connected namefb
to a UILabel object in Interface Builder. Simply making that variable an outlet won't cause an object to appear there out of thin air—you need to create the object (in IB) and plug it into the outlet (in IB).
Until it's connected to an object, the variable will hold nil
, and a message to nil
does nothing.
Upvotes: 0
Reputation: 19071
Your code assumes three things:
The result
object is of type NSArray
.
The NSArray
has at least one object, which is an NSDictionary
.
That object has a key "name" that has an NSString
object associated with it.
Test each of these three things, perhaps by using some NSLog()
statements, and you should see where the problem is.
Upvotes: 1