2

UIViewController に UIRefreshControl を実装しようとしています。tableView は viewController の 1 つのセグメントにすぎないため、UITableViewController を使用できません。

ほとんどの場合、この回避策はうまく機能します。しかし、時々(ランダムに発生します)アプリがクラッシュしますEXC_BAD_ACCESS code=1

- (void)viewDidLoad {
    [super viewDidLoad];

    UIRefreshControl * refCon = [[UIRefreshControl alloc] init];
    [refCon addTarget:self selector:@selector(refresh:) forControlEvent:UIControlEventValueChanged];
    [tableView addSubView:refCon];
}

- (void)refresh:(UIRefreshControl *)sender {
    [NSThred detachNewThreadSelector:@selector(doRefresh:) toTarget:self withObject:sender];
}

- (void)doRefresh:(UIRefreshControl *)sender {
    [self checkUpdate];
    [self loadData];
    [sender endRefreshing];
}
4

2 に答える 2

5

-endRefreshingバックグラウンド スレッドで呼び出しています。そうしないでください。

また、 をUIRefreshControlサブビューとして直接追加しても、UITableView動作する保証はありません。を使用する必要がありますUITableViewController

于 2012-11-05T23:55:29.067 に答える