Hãy thử như sau:
// Run in the background, on the default priority queue
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self performSelector:(SEL) withObject:(id) afterDelay:(NSTimeInterval)]
});
Mã không được kiểm tra
Hãy nhận biết rằng chọn/phương pháp của bạn không được sử dụng tài sản UIKit (do đó, không cập nhật giao diện người dùng) hoặc truy cập UIKit (như khung hình) do đó, bộ chọn của bạn có thể cần phải khởi động lại công việc trở lại chủ đề chính. ví dụ.
(id)SomeMethod:UsingParams: {
// Do some work but the results
// Run in the background, on the main queue
dispatch_async(dispatch_get_main_queue(), ^{
// Do something UIKit related
});
}
Nguồn
2012-06-22 19:10:07
vấn đề là khi '[tự performSelector: (SEL) withObject: (id) afterDelay: (NSTimeInterval)]' được sử dụng một mình trong một thread nền, nó không chạy –