Add PromiseKit dependency

- Added PromiseKit dependency
This commit is contained in:
2018-11-15 22:08:00 -04:00
parent 2689d86c18
commit be7b6b5881
541 changed files with 46282 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
import CoreBluetooth
#if !PMKCocoaPods
import PromiseKit
#endif
private class CentralManager: CBCentralManager, CBCentralManagerDelegate {
var retainCycle: CentralManager?
let (promise, fulfill) = Guarantee<CBCentralManager>.pending()
@objc func centralManagerDidUpdateState(_ manager: CBCentralManager) {
if manager.state != .unknown {
fulfill(manager)
}
}
}
extension CBCentralManager {
/// A promise that fulfills when the state of CoreBluetooth changes
public class func state(options: [String: Any]? = [CBCentralManagerOptionShowPowerAlertKey: false]) -> Guarantee<CBCentralManager> {
let manager = CentralManager(delegate: nil, queue: nil, options: options)
manager.delegate = manager
manager.retainCycle = manager
manager.promise.done { _ in
manager.retainCycle = nil
}
return manager.promise
}
}