2012-08-29 90 views
0

我正在使用Facebook SDK 3,它使用Blocks作爲CompletionHandlers。 我想在傳遞塊使用局部範圍的變量(自變量)來FBRequestConnectionObjC使用塊中的變量在另一個類中觸發

-(void)  shareStoryWithHandle:(const int)HID parameters:(NSString*)jsonparams 
{ 
    if (FBSession.activeSession.isOpen) 
    { 
     FBRequestHandler my_handler = ^(FBRequestConnection *connection, id result, NSError *error) 
     { 
      // do somthing with HID 
      // but HID is 0 in this scope while is correct in shareStoryWithHandle scope! 
     } 
     [FBRequestConnection startWithGraphPath:@"me/feed" 
           parameters:[jsonparams objectFromJSONString] 
           HTTPMethod:@"POST" 
          completionHandler:my_handler]; 
    } 
} 

如何使用HID在塊範圍,我不能把它存儲在上課!

回答

0

您斷言HID在塊中爲0是錯誤的。創建塊時,它將獲取任何捕獲變量的const副本,因此如果在塊中引用HID,則該塊中的變量將具有值HID在創建塊的位置執行的操作。

+0

我不知道我怎麼能斷言它錯了! NSLog(@「HID:%d」,HID); //在shareStoryWithHandle範圍內返回1 NSLog(@「HID:%d」,HID); //在塊範圍內返回0 – Penman

+0

急@Kevin Ballard寫, 兩個值都是0! 這個問題完全來自別的地方,我是這樣一個不注意的人...... – Penman

相關問題