2014-10-09 15 views
7

Sto modificando un'app che rileva un dispositivo tramite Bluetooth BLE per tracciare i valori in un grafico. Funziona tutto bene (grazie all'aiuto di uno di voi nell'ultima settimana). L'applicazione è stata inizialmente scritta da mio marito qualche tempo fa e durante la scoperta del dispositivo, che stava usando il codice controllo come:UUID iOS obsoleto corebluetooth

NSLog(@" Failed to Connect to Peripheral : %@ with UUID: %@ ", peripheral, peripheral.UUID); 

o

NSLog(@" Connected to Peripheral : %@ with UUID: %@ ", peripheral, peripheral.UUID); 

Davanti a ciascuna di queste linee (e alcuni di più) Ricevo i messaggi di avviso che UUID è deprecato: prima deprecato in ios 7.0 Da un po 'di tempo, cerco di scoprire da cosa è stato sostituito, ma su Google, non sembra che gli altri abbiano il stesso problema e quando vado alla documentazione Apple: here

non si parla di deprecazione.

Non capisco ...

Qualcuno potrebbe per favore aiuto? Grazie

EDIT: l'aggiunta di alcuni INFO

Questo è quello che ho sul mio computer sulla console

enter image description here

+0

Sembra che avete tirato fuori la proprietà 'UUID' sbagliata. La proprietà 'UUID' di' CBPeripheral' è deprecata a partire da 7.0. https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBPeripheral_Class/index.html#//apple_ref/occ/instp/CBPeripheral/UUID –

+0

Ian, HI. Ok, quindi con cosa lo sostituisco?Ho aggiunto una foto per mostrarti cosa ricevo nella console – Clararhea

+0

Mi dispiace; Non posso aiutarti più di così. (È per questo che ho postato un commento invece di fornire una risposta.) Le uniche interazioni CoreBluetooth che ho avuto riguardavano iBeacons, non i generici dispositivi Bluetooth. –

risposta

15

Aggiornamento

Ho ricontrollato e la proprietà UUID su Anche CBPeer è deprecato.

Dalla documentazione in Xcode ho trovato -

Deprecation Dichiarazione
Utilizzare la proprietà identificatore, invece.

E se si utilizza peripheral.identifier.UUIDString non si ottiene un avviso di deprecazione.

+0

So come lanciare un paio di cose, ma quello è un mistero per me. Come lo faresti, per favore? – Clararhea

+0

Mi sono reso conto che la mia risposta originale era incorretta comunque una volta che ho ottenuto Xcode - l'ho aggiornato – Paulw11

+0

Ho pensato di aver aggiunto un commento la scorsa notte per ringraziarvi ma sembra che sia andato via. Questo funziona sicuramente. – Clararhea

3

Quindi, nel caso qualcuno legga questo: Ecco il modo generale per scoprire cosa usare al posto della chiamata API deprecata.
1) Contrassegnare la chiamata obsoleta
2) Fare clic con il pulsante destro del mouse su "Salta alla definizione"
3) Leggere cosa dice.

Nel caso di UUID che è stato chiesto qui, la risposta sarebbe 2 linee di seguito:

@property (readonly, nonatomic) NSUUID *identifier NS_AVAILABLE(NA, 7_0); 
2

È possibile accedere al servizio UUID da CBAdvertisementDataServiceUUIDsKey in advertisementData in

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 
Problemi correlati