我正在尝试在单元格进入视图时将数据加载到应用程序中,这样一旦他们按下单元格的附件按钮,它将加载数据。
我的问题是我正在使用 AFNetworking 并且我正在使用这个块代码:
[Request fullRequestWithBlock:^(NSArray *detailedReqFromWeb, NSError *error) {
if (error) {
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
} else {
NSArray *objs = [NSArray arrayWithObjects: [detailedReqFromWeb objectAtIndex: 0], [detailedReqFromWeb objectAtIndex: 1], [detailedReqFromWeb objectAtIndex: 2], [detailedReqFromWeb objectAtIndex: 3], [detailedReqFromWeb objectAtIndex: 4], [detailedReqFromWeb objectAtIndex: 5], nil];
NSArray *keys = [NSArray arrayWithObjects:@"Risk", @"Destination", @"Source", @"Customer", @"Subcategory", @"Deployment", nil];
NSMutableDictionary *detailsforRequestDictionary = [[NSMutableDictionary alloc] initWithObjects:objs forKeys:keys];
[request addEntriesFromDictionary: detailsforRequestDictionary];
NSLog(@"%@ Finished Loading", [idNumbers objectAtIndex:row]);
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
} forID: [[idNumbers objectAtIndex:row] substringFromIndex:1]];
因此,基本上,一旦加载数据,我就会尝试将附件类型从指示器更改为显示按钮,这样我就可以转到另一个视图,在该视图中将显示我加载的数据。
我的问题是它在完成加载之前将 cell.accessoryType 更改为按钮。调试 NSLog 在实际完成加载时实际输出。
仅在加载完成后才启用按钮的最佳方法是什么?我猜这个请求没有被主线程处理。为什么会通知我请求已完成处理以便我可以切换附件类型?
谢谢!