0

三天前,这段代码起作用了……:(

标签不会更新以显示加载的 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 代表)

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

有任何想法吗?

对不起我的英语不好..:)

4

2 回答 2

1

您的代码假设三件事:

  1. result对象的类型为NSArray

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

  3. 该对象有一个键“名称”,它有一个NSString与之关联的对象。

测试这三件事中的每一个,也许通过使用一些NSLog()语句,你应该看到问题出在哪里。

于 2010-01-21T18:11:09.290 回答
0

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

在它连接到一个对象之前,该变量将保持不变nil,并且一条消息 tonil什么也不做。

于 2010-01-22T04:08:01.940 回答