0

我正在使用新的facebook ios sdk。我使用下面顯示的新功能請求朋友數據。但是,由於它是一個以塊爲參數的函數,我在函數外部丟失了這些數據。如何保存數據(即存儲在全局變量中)以便我可以在另一個函數中使用它?Facebook IOS SDK:將facebook請求回調數據存儲到全局變量中

在此先感謝。

代碼:

-(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]; 
}]; 

回答

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]; 
}]; 
+0

像馬塞洛說,你仍然可以訪問塊內的實例變量。您也可以調用委託方法或通過返回的數據發佈通知 – JLoewy 2013-03-10 09:47:53

+0

我最初使用該方法,但該屬性無法存儲在塊之外。最後我嘗試了委託方法,它的工作原理。多謝你們。 – yoghourtpuppy 2013-03-10 20:33:03