最近幾個月都在作藍牙項目,用CoreBluetooch感受語句寫的處處都是,不優雅。一整條鏈下來要近10幾個委託方法,而且不斷的在委託方法中調用方法再進入其餘的委託,致使 代碼很零散。所以我就想讓coreBluetooth使用更簡單,語法更優雅,因此開始寫這個BabyBluetooch藍牙庫。ios
更新於:20150916,如今BabyBluetooth 已經有了96個stargit
更新於:20160129,如今BabyBluetooth 已經有了880個stargithub
//導入.h文件和系統藍牙庫的頭文件 #import "BabyBluetooth.h" -(void)viewDidLoad { [super viewDidLoad]; //初始化BabyBluetooth 藍牙庫 baby = [BabyBluetooth shareBabyBluetooth]; //設置藍牙委託 [self babyDelegate]; //設置委託後直接可使用,無需等待CBCentralManagerStatePoweredOn狀態 baby.scanForPeripherals().begin() } //藍牙網關初始化和委託方法設置 -(void)babyDelegate{ //設置掃描到設備的委託 [baby setBlockOnDiscoverToPeripherals:^(CBCentralManager *central, CBPeripheral *peripheral, NSDictionary *advertisementData, NSNumber *RSSI) { NSLog(@"搜索到了設備:%@",peripheral.name); }]; //設置設備鏈接成功的委託 [baby setBlockOnConnected:^(CBCentralManager *central, CBPeripheral *peripheral) { NSLog(@"設備:%@--鏈接成功",peripheral.name); }]; //設置發現設備的Services的委託 [baby setBlockOnDiscoverServices:^(CBPeripheral *peripheral, NSError *error) { for (CBService *service in peripheral.services) { NSLog(@"搜索到服務:%@",service.UUID.UUIDString); } }]; //設置發現設service的Characteristics的委託 [baby setBlockOnDiscoverCharacteristics:^(CBPeripheral *peripheral, CBService *service, NSError *error) { NSLog(@"===service name:%@",service.UUID); for (CBCharacteristic *c in service.characteristics) { NSLog(@"charateristic name is :%@",c.UUID); } }]; //設置讀取characteristics的委託 [baby setBlockOnReadValueForCharacteristic:^(CBPeripheral *peripheral, CBCharacteristic *characteristics, NSError *error) { NSLog(@"characteristic name:%@ value is:%@",characteristics.UUID,characteristics.value); }]; //設置發現characteristics的descriptors的委託 [baby setBlockOnDiscoverDescriptorsForCharacteristic:^(CBPeripheral *peripheral, CBCharacteristic *characteristic, NSError *error) { NSLog(@"===characteristic name:%@",