0

我正在使用 Facebook SDK 3,它使用 Blocks 作为 CompletionHandlers。我想在传递块中使用局部范围变量(参数)到 FBRequestConnection

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

我如何在 Block 范围内使用 HID,但我无法将它存储在类中!

4

1 回答 1

0

您在块中为 0 的断言HID是错误的。当您创建块时,它会获取任何捕获变量的 const 副本,因此如果您在块中引用HID,那么块中的变量将具有在HID创建块时所做的值。

于 2012-08-29T08:14:17.573 回答