2014-06-17 19 views
5

Làm cách nào để đợi một số phương thức được hoàn thành?Tương đương Swift cho dispatch_group_create

Đây là giải pháp quan-c:

self.dispatch_group = dispatch_group_create(); 
dispatch_group_notify(self.dispatch_group, dispatch_get_main_queue(), ^{ 
}); 
dispatch_group_leave(strongSelf.dispatch_group); 
+2

GCD vẫn hoạt động với Swift, bạn có gặp sự cố với nó không? – Jack

+0

điều này đơn giản: http://stackoverflow.com/a/40476853/294884 – Fattie

Trả lời

6

Swift là chủ yếu tương thích với Objective-C và tôi không có vấn đề với mã này:

let dispatch_group = dispatch_group_create() 
dispatch_group_notify(dispatch_group, dispatch_get_main_queue()) { } 
dispatch_group_leave(dispatch_group) 

Có một tài liệu của Apple về việc chuyển của bạn Mã mục tiêu-C để Swift: https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/buildingcocoaapps/Migration.html

+1

Tôi gặp vấn đề với mã này - có dấu chấm phẩy trong đó! ;) – rickster

+4

Tôi sẽ bị phạt bằng cách viết 500 dòng Objective-C! – Nicolai

+0

Cụ thể, Grand Central Dispatch (GCD) là tất cả các hàm C, không phải Objective-C. Chúng tương thích vì Apple đã tạo một khung công tác Swift cho chúng một cách rõ ràng (bạn có thể thấy bằng 'import Dispatch'). Mặt khác, CommonCrypto vẫn còn trong thời tiết lạnh. – Erik

Các vấn đề liên quan