Tôi đã cố gắng sử dụng dispatch_async
trong một phương thức trả về kết quả. Tuy nhiên, tôi quan sát thấy phương thức trả về trước khi thực thi khối dispatch_async
. Do đó tôi không nhận được kết quả như mong đợi. Đây là một số mã chứng minh vấn đề của tôi.dispatch_async trong mục tiêu trả về c
-(BOOL) isContactExists {
BOOL isContactExistsInXYZ = YES;
UserId *userId = contact.userId;
dispatch_async(dispatch_get_main_queue(),^
{
iOSContact *contact = [iOSContact contactForUserId:userId];
if (nil == contact)
{
isContactExistsInXYZ = NO;
}
});
return isContactExistsInXYZ;
}
Phương pháp này isContactExists
được gọi ở một nơi khác và dựa trên phản hồi từ phương pháp đó tôi phải thực hiện một số nội dung. Nhưng mỗi lần, giá trị của isContactExistsInXYZ
không phải là những gì tôi mong đợi. Bất cứ ai có thể vui lòng giải thích làm thế nào để xử lý dispatch_async
trong tình huống này?
Cảm ơn.
dispatch_async là không đồng bộ đó là trung bình mà yhe trở lại sẽ đạt được trước khi kết thúc công văn async – Francescu
@ francescu, Rằng tôi hiểu với phân tích của tôi, bạn có thể xin vui lòng giúp đỡ để làm thế nào để xử lý nó theo cách khác, một đoạn mã hoặc thông tin logic. Cảm ơn –