0

ブロックの外側から [insertedItem objectForKey:@"id"] の値にアクセスするにはどうすればよいですか?

   [itemTable insert:item completion:^(NSDictionary *insertedItem, NSError *error) {
        if (error) {
            NSLog(@"Error: %@", error);
        } else {
            NSLog(@"Item inserted, id: %@", [insertedItem objectForKey:@"id"]);
        }
    }];
4

1 に答える 1

1

できません。ブロックは無名メソッドと考えてください。外部からメソッドのローカル変数にアクセスできますか? いいえ。

必要に応じて、値を別の変数に保存してアクセスできます。

[itemTable insert:item completion:^(NSDictionary *insertedItem, NSError *error) {
   self.insertedItem = insertedItem;
}];

明らかに、insertItem がstrong参照であることを確認してください。

于 2013-07-08T15:14:10.407 に答える