2011-12-19 5 views
5

Tôi đang làm việc trên một ứng dụng có thể xóa một lượng lớn tệp. Khi tôi gọi phương thức removeItemAtPath của NSFileManager, giao diện người dùng của ứng dụng sẽ khóa cho đến khi hoạt động kết thúc (quá trình này có thể mất một lúc).NSFileManager removeItemAtPath khóa chủ đề chính

Tôi đã thử sửa lỗi này bằng cách gọi phương thức bằng cách sử dụng performSelectorInBackground nhưng nó không hoạt động.

Bất kỳ ý tưởng nào?

Xin cảm ơn trước.

Trả lời

1

Bạn có thể thử sử dụng GCD để làm điều đó trong chuỗi nền.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { 
    [[NSFileManager defaultManager] removeItemAtPath:path]; 
});