0

ブロックを CompletionHandlers として使用する Facebook SDK 3 を使用しています。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];
    }
}

ブロック スコープで HID を使用するにはどうすればよいですか。クラスに格納することはできません。

4

1 に答える 1

0

ブロック内で 0 であるという主張HIDは間違っています。ブロックを作成すると、キャプチャされた変数の const コピーが取得されるため、ブロック内で参照HIDすると、ブロック内の変数にはHID、ブロックが作成された時点での値が含まれます。

于 2012-08-29T08:14:17.573 に答える