【问题标题】:Facebook IOS SDK: store facebook request callback data into global variableFacebook IOS SDK:将facebook请求回调数据存储到全局变量中
【发布时间】:2013-03-10 05:16:31
【问题描述】:

我正在使用新的 facebook ios sdk。我使用如下所示的新功能请求朋友数据。但是,由于它是一个以块为参数的函数,因此我在函数之外丢失了这些数据。如何保存数据(即存储在全局变量中)以便在另一个函数中使用它?

提前致谢。

代码:

-(void)requestFriends {
  [FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection* connection, id data, NSError *error) {
    if(error) {
    [self printError:@"Error requesting /me/friends" error:error];
    return;
  }
  NSArray* friends = (NSArray*)[data data];
}];

【问题讨论】:

    标签: ios facebook-graph-api objective-c-blocks facebook-ios-sdk facebook-requests


    【解决方案1】:

    只需将其存储在属性中,然后刷新 UI。

    // in .h or class extension
    @property(nonatomic, strong) NSArray *friends;
    
    -(void)requestFriends {
        [FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection* connection, id data, NSError *error) {
          if(error) {
          [self printError:@"Error requesting /me/friends" error:error];
          return;
        }
        self.friends = (NSArray*)[data data];
    }];
    

    【讨论】:

    • 就像 Marcelo 所说的,您仍然可以访问块内的实例变量。您还可以调用委托方法或使用返回的数据发布通知
    • 我最初使用该方法,但该属性不能存储在块之外。最后我尝试了委托方法并且它有效。谢谢大家。
    猜你喜欢
    • 1970-01-01
    • 2021-02-18
    • 2021-10-12
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多