这是关于块句的问题。我的问题是如何在块语句中获取变量。请看我的代码。下面的代码效果不佳。
__block NSURL *ssURL
AFJSONRequestOperation *operation =
[AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
ssURL = [NSURL URLWithString:[JSON valueForKeyPath:@"screenshot"]];
[self currentEntry].ogImageURL = ssURL;
NSLog(@"%@", ssURL); // -> "http://correct.address"
} failure:nil];
[operation start];
此外,我将变量 ogImageURL 设置如下:
@property (copy, atomic) NSURL *ogImageURL;
在完成块之外,NSLog 明显显示“(null)”。我想在语句块之外使用变量。这很奇怪。
我必须从块外部获取变量,因为我想创建表格视图,其中单元格调用以获取数组的自我信息。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
if (indexPath.row < self.itemsArray.count) {
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
UIImageView *imageViewOgImage = (UIImageView *)[cell viewWithTag:5];
NSURL *ogImageURL = [[self.itemsArray objectAtIndex:indexPath.row] ssURL];
完整来源是第 186 行:https ://github.com/weed/p120711_TechMovie/blob/120723/TechMovie/RSSParser.m