'init(recordType:zoneID:)' is deprecated: Use init(recordType:recordID:) + CKRecord.ID(zoneID:) inst
Bonjour,
Jusqu'ici, je créais des RecordID comme ci-dessous:
let bottle = CKRecord(recordType: Cloud.Entity.Bouteille, zoneID: Cloud.sharedInstance.recordZone.zoneID)
J'ai maintenant un message d'erreur m'indiquant que la méthode est "deprecated" et que je dois d'abord créer un CKRecord.ID puis créer le CKRecord à partir de ce recordID.
Mon problème est maintenant que pour créer un CKRecord.ID, je dois fournir un "recordName" qui doit être unique alors que jusqu'à présent, le "recordName" était créé par CloudKit et que ça m'allait très bien.
Comment définir un recordName unique, sachant que des enregistrements existent déjà ! (sur 255 caractères, le risque de retomber sur le même recordName est faible, mais bon...)
Merci !
Nicolas
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu génères une clé aléatoire avec 255 caractères, et tu testes si elle existe déjà.
EDIT : Tu peux aussi partir d'un événement unique, comme la date courante, pour y ajouter une clé alphanumérique aléatoire.
Pour générer ta clé aléatoire, il faut utiliser quelque chose dans ce genre :
UUID().uuidString
me semble plus efficace pour cela.Merci pour vos réponses. Je vais mettre tout ça en oeuvre.
Mais pourquoi donc Apple déprécie-t-elle cette méthode, qui nécessite un effort pour la remplacer ???? Avec des risques d'erreur à la clef.