Я знаю, что вы, наверное, уже все поняли. Я сам тоже наткнулся на эту проблему. Выполнение следующих действий не полностью решило проблему (по крайней мере, для меня): [central connectPeripheral:peripheral options:nil];
Вместо «nil» для параметров вам нужно будет предоставить «параметры» в указанном выше методе. Есть и другие вещи, которые вам нужно настроить (например, info.plist для вашего приложения). После прочтения инструкции Apple о том, как включить фоновое подключение к Bluetooth для приложения. Я смог заставить его работать и получать события для подключения, отключения, обновления и т. Д., Даже сканирование может работать на заднем плане. Чтобы не повторять все, что написал документ Apple, вы можете взглянуть на следующую ссылку: Основная обработка фонового изображения Bluetooth для приложений iOS
Надеюсь, это поможет.
private let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(youFunction), for: .valueChanged)
refreshControl.tintColor = UIColor.red
refreshControl.attributedTitle = NSAttributedString(string: "Fetchin Data ...", attributes: nil)
DispatchQueue.main.async {
self.refreshControl.endRefreshing()
yourCollectionViewOrTableView.reloadData()
}