7
votes

iOS uuid obsolète CoreBlumetooth

Je modifie une application qui découvre un périphérique via Bluetooth Ble afin de tracer les valeurs dans un graphique. Tout fonctionne bien (grâce à l'aide de l'un de vous la semaine dernière). L'application a été initialement écrite par mon mari il y a quelque temps et pendant la découverte de l'appareil, il utilisait le code de vérification comme: xxx

ou xxx

devant chacune de ces lignes (et d'autres), je reçois les messages d'avertissement que UUID est obsolète: d'abord obsolète dans iOS 7.0 Depuis un certain temps, j'essaie de découvrir de ce qu'il a été remplacé, mais sur Google, il ne semble pas que d'autres personnes ont le même problème et que lorsque je vais à la documentation Apple: ici

Il n'y a aucune mention de cela étant obsolète.

Je ne comprends pas ...

Quelqu'un pourrait-il aider? Merci

EDIT: Ajout de certaines infos

C'est ce que je suis sur mon ordinateur sur la console

 Entrez la description de l'image ici


4 commentaires

On dirait que vous avez tiré la mauvaise propriété uuid . La propriété uuid de cbperiphéral est obsolète à partir de 7.0. développeur.apple.com/library/ios/documentation/corebluetooth/ ...


Ian, salut. Ok, alors qu'est-ce que je le remplace? J'ai ajouté une photo pour vous montrer ce que je regarde dans la console


Je suis désolé; Je ne peux pas vous aider plus que cela. (C'est pourquoi j'ai posté un commentaire au lieu de fournir une réponse.) Les seules interactions Corebluetooth que j'ai impliqué impliquent des ibecons et non des périphériques Bluetooth génériques.


La documentation cbperiphériques indique qu'il est obsolète développeur.Apple. com / bibliothèque / iOS / documentation / CoreBluetooth / ... mais ne fournit pas d'alternative. À ce stade, vous ne pouvez rien faire, mais continuer à utiliser les propriétés obsolètes. C'est peut-être une erreur de documentation.


3 Réponses :


17
votes

mise à jour

J'ai vérifié double vérité et la propriété UUID sur CBPEER est également obsolète.

de la DOCS en Xcode j'ai trouvé -

Déclaration de dépréciation
Utilisez la propriété identifiant à la place.

et si vous utilisez périphérique.identififier.uuidstring Vous n'obtenez pas d'avertissement de dépréciation.


12 commentaires

Je sais comment jeter quelques choses, mais celui-là est un mystère pour moi. Comment feriez-vous cela, s'il vous plaît?


J'ai réalisé que ma réponse originale était incorrecte de toute façon une fois que je suis arrivé devant xcode - je l'ai mis à jour


Je pensais avoir ajouté un commentaire hier soir pour vous remercier, mais cela semble être parti. Ce qui fonctionne certainement.


Oui, l'IOS 8 DOC a été mis à jour avec Utilisez la propriété Identifier.


Mais la valeur de l'identifiant change pour le même périphérique.


Maintenant, identifiant est marqué comme amorti aussi! développeur.apple.com/library/prerelease/ios/documentation/...


Je crois que c'est une erreur de documentation. Le texte de identifiant ne semble pas développer correctement et je ne reçois pas d'avertissement de dépréciation dans xcode 7b5


Pareil ici. Aucun avertissement obsolète en version bêta Xcode pour l'identifiant. Je crois que c'est une erreur de documentation.


@Nestor j'ai remarqué que aussi et que je me demandais également si c'est une erreur dans la documentation ... surtout car il n'y a pas de "utiliser xyz à la place" sur cette propriété.


@Nestor cela pourrait effacer les choses ... Nick Brook sur la liste de diffusion Bluetooth principale a souligné que "la nouvelle propriété d'identifiant se trouve sur la nouvelle superclasse CBPEer" - il est donc toujours là, il vient de promouvoir la hiérarchie de la classe à Cbpeeer. Ouf!


Juste le vérifier. Si vous regardez CBPeer.h, Assez bien sûr ... L'identifiant est une propriété de cette classe, à partir de laquelle CBCENTRAL et CBPERIPHERAL hériter. Cela était certainement un mystère intéressant à comprendre! ;)


La prochaine fois que quelqu'un me dit de lire les docs plutôt que de poster ainsi, je les liens ici.



3
votes

Alors, juste au cas où quelqu'un lit ceci: Voici la façon générale de savoir quoi utiliser au lieu de l'appel d'API obsolète.
1) Marquez l'appel obsolète
2) Cliquez avec le bouton droit de la souris sur "Aller à la définition"
3) Lisez ce qu'il dit là-bas.

Dans le cas de UUID qui a été demandé ici, la réponse serait de 2 lignes ci-dessous: P>

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


0 commentaires

2
votes

Vous pouvez accéder au service UUID par cbadvertisementDataServiceUuidsKey dans la publicitéData dans xxx


0 commentaires