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

显然,确保insertedItem 是一个strong引用。

于 2013-07-08T15:14:10.407 回答