Correction d'un avertissement “C style pour l'Énoncé est obsolète” dans Swift 3
J'ai mise à jour Xcode
à 7,3 et maintenant, j'ai un avertissement à la fonction que j'utilise pour créer des chaînes aléatoires.
J'ai essayé de changer la for
déclaration avec for (i in 0 ..< len){...}
toutefois, l'avertissement est devenu une erreur.
Comment puis-je supprimer l'avertissement?
static func randomStringWithLength (len : Int) -> NSString {
let letters : NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
let randomString : NSMutableString = NSMutableString(capacity: len)
for (var i=0; i < len; i += 1){ //warning
let length = UInt32 (letters.length)
let rand = arc4random_uniform(length)
randomString.appendFormat("%C", letters.characterAtIndex(Int(rand)))
}
return randomString
}
- double possible de stackoverflow.com/questions/36173379/...
Vous devez vous connecter pour publier un commentaire.
C-style
for
boucle a été déprécié en Swift 3. Vous pouvez continuer à l'utiliser pendant un certain temps, mais ils vont certainement disparaître dans l'avenir.Vous pouvez réécrire votre boucle de Swift style:
Puisque vous ne l'utilisez pas
i
à tous dans la boucle du corps, vous pouvez le remplacer par:Ce BLOG m'a sauvé la vie.
INCRÉMENTATION
DÉCRÉMENTATION
NON-SÉQUENTIELLE D'INDEXATION
Où
À l'aide de l'utilisation ou par l'intermédiaire de
where
clause dans une situation où il est clairement un motif de coupe.0.stride(to: len, by: 2)
de moitié le nombre de sauts que le processeur a à faire.dans Swift 3 c'est une erreur
certaines générale, le remplacement a été posté et juste ajouter
Pour Swift 3 et la nécessité de changer l ' "indice"
for index in stride(from: 0, to: 10, by: 1){}
🙂J'ai eu du succès avec la suite. Vous pouvez utiliser la boucle for comme suit - à noter que la boucle for est inclusif, de sorte que vous pouvez avoir besoin de vérifier que len est en fait plus grande que 0:
Ou vous pouvez utiliser ceci:
BTW, il apparaît XCode 7.x ne vous aider à y arriver mais c'est un processus en deux étapes. Vous devez d'abord changer votre opérateur d'incrémentation de (dis)++ i à i += 1 puis XCode avertissement vous permet de modifier la boucle.