1

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

この問題を解決するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

-2

ブロックの直前にこれを宣言します。

__block typeof(self) this = self;

少なくとも、これselfにより、それを呼び出すことにより、ブロック内からアクセスできるようになりますthis

編集:それは行くべき道ではありません、私の間違いです。API を実装するときにブロック内の自己をキャプチャしないようにするにはどうすればよいですか? を参照してください。

于 2013-04-25T14:45:53.387 に答える