Tôi đang cố gắng hai phương pháp sau đây:Thực hiện trên vòng lặp chạy tiếp theo: Có gì sai với GCD?
dispatch_async(dispatch_get_main_queue(),^{
[self handleClickAsync];
});
và
[self performSelector:@selector(handleClickAsync) withObject:nil afterDelay:0];
để đáp ứng với một nút bấm.
Điều thứ hai cho phép UIButton
làm nổi bật như mong đợi và thực hiện handleClickAsync
trên vòng lặp chạy tiếp theo (tôi giả sử: "đôi khi sau đó" để chắc chắn). Đầu tiên không cho phép cá thể UIButton
sáng lên cho đến khi thao tác hoàn tất.
Cách chính xác để làm điều này với GCD, hoặc là performSelector
vẫn là cách duy nhất?
Có lẽ bạn đang gọi điện thoại này từ bên trong một hàng đợi công văn? Nếu có, nó sẽ chạy tất cả các lệnh tuần tự trong hàng đợi. Bạn có thể gọi phương thức này trước khi bắt đầu hoạt động không? –
Tôi không chắc chắn. Tôi gọi nó trực tiếp từ một 'touchesEnded', nó xuất hiện miễn phí trên lớp con' UIView' (hoặc UIButton trong trường hợp này). –
Tôi không chắc chắn lý do tại sao bạn đang thực hiện một hiệp hội giữa dispatch_async và chạy runloop ... –