问题FBConnect(IPHONE),代码不在didLoad上运行

时间:2010-01-21 17:45:06

标签: iphone cocoa-touch fbconnect

三天前,这段代码有效...... :(

标签不会更新以显示加载的Facebook用户名。

//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
}

(我还在IB中连接了标签并导入了所有fbconnect委托)

当我在debug中运行它时,变量名是正确的,但namefb.text没有得到更新..

有什么想法吗?

抱歉我的英文.. :)

2 个答案:

答案 0 :(得分:1)

您的代码假设有三件事:

  1. result对象的类型为NSArray

  2. NSArray至少有一个对象,即NSDictionary

  3. 该对象的关键字“名称”与NSString对象关联。

  4. 测试这三件事中的每一件,可能是使用一些NSLog()语句,你应该看到问题出在哪里。

答案 1 :(得分:0)

确保已将namefb连接到Interface Builder中的UILabel对象。简单地将该变量设为出口不会导致物体在空气中出现 - 您需要创建物体(在IB中)并将其插入插座(在IB中)。

在它连接到某个对象之前,该变量将保留nil,而nil的消息不会执行任何操作。