我正在尝试从API加载数据并将其显示在UITableView
内。我使用AFNetworking
进行网络调用,但现在我遇到了一个问题:我无法在成功块中访问myTableView
或self
。
@property (weak, nonatomic) IBOutlet UITableView *myTableView;
@property (nonatomic,retain) NSMutableArray *myDataSource;
@synthesize featuredProductsTableView;
- (void)viewDidLoad
{
[super viewDidLoad];
NetworkManager *networkManager = [NetworkManager getInstance];
myDataSource = [NSMutableArray array];
[networkManager getPath:@"example.com" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) {
[myDataSource addObjectsFromArray:JSON];
[myTableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
}];
}
调试代码显示在块内部我无法访问self
,myDataSource
或myTableView
中的任何内容。
我该如何解决这个问题?
感谢。
答案 0 :(得分:0)
答案 1 :(得分:-2)
在阻止之前声明这一点:
__block typeof(self) this = self;
至少,这样您就可以通过调用self
来阻止来自阻止内部的this
。
编辑:这不是我要走的路,我的错误。见How do I avoid capturing self in blocks when implementing an API?