2 つの Twitter ユーザー フィードを含む 2 つの個別の JSON データ オブジェクトを取得しようとしていますが、多くの問題が発生しています。両方を同時に処理してテーブルに入れたいのですが、問題があります。
各 JSON リクエストを追加するグローバル NSMutableData があります。すべてが 1 か所に配置されたら、グローバル NSMutableData でテーブルを更新しようとします。allTheData はグローバル NSMutable オブジェクトです。
if ([twitterAccounts count] > 0) {
while (accountsize != [twitterAccounts count]) {
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
[allTheData appendData:responseData];
}];
accountsize = accountsize + 1;
}}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self performSelectorOnMainThread:@selector(receiveData:) withObject:allTheData waitUntilDone:YES];
});
- (void)receiveData:(NSData *)data {
self.tweets = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
[self.TwitterTableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] init];
NSDictionary *tweet = [self.tweets objectAtIndex:indexPath.row];
cell.textLabel.text = [tweet objectForKey:@"text"];
return cell;
}
このコードを実行するたびに、クラッシュして次のように吐き出します
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
* First throw call stack: (0x2622012 0x131ae7e 0x2621deb 0xe4f817 0x568c 0x132e6b0 0xd5b035 0x25a5f3f 0x25a596f 0x25c8734 0x25c7f44 0x25c7e1b 0x290d7e3 0x290d668 0x26265c 0x258d 0x24b5) libc++abi.dylib: terminate called throwing an exception