问题
I am trying to use Bluetooth I have something like this :
func centralManager(central: CBCentralManager, didConnectPeripheral peripheral: CBPeripheral) {
Connected = true
TableView.reloadData()
Activityview.stopAnimating()
TabBar.topItem!.rightBarButtonItem = UIBarButtonItem(title: "Suivant", style: UIBarButtonItemStyle.Done, target: nil, action: #selector(Connexion.next))
CM.stopScan()
Scanning = false
Refresh_Button.setTitle("Deconnecté", forState: UIControlState.Normal)
let AlertMessage = UIAlertController(title: "Connecté", message: "Le module est bien connecté", preferredStyle: .Alert)
let ActionAlert = UIAlertAction(title: "Ok", style: .Default) { (action) in }
AlertMessage.addAction(ActionAlert)
self.presentViewController(AlertMessage, animated: true, completion: nil)
peripheral.delegate = self
let servicetoFind = CBUUID(string: "19B10000-E8F2-537E-4F6C-D104768A1214")
peripheral.discoverServices([servicetoFind])
}
My service function :
func peripheral(peripheral: CBPeripheral, didDiscoverServices error: NSError?) {
print("found service")
print(peripheral)
print(peripheral.services)
print(error)
for service in peripheral.services! {
print("Searching for charac...")
peripheral.discoverCharacteristics(nil, forService: service)
}
}
my Service is found and I got in console :
found service
<CBPeripheral: 0x13ce1c430, identifier = F39F9D5D-98FE-A350-17BD-21C1185E2089, name = GENUINO 101-1E2D, state = connected>
Optional([])
nil
Why my services for my peripheral is still empty after discovering but got no error ?
Any ideas ?
thanks !
回答1:
Well, I restarted my iPhone and all work very good now... Thanks guys !
回答2:
It can be nil. You should only check for services under the for loop you're using. Since you're not getting any service, you can also try peripheral.discoverServices(nil). It will list all the services.
来源:https://stackoverflow.com/questions/37620722/ios-peripheral-service-still-empty-after-discovering