‘init (start: end :)’ est obsolète: il sera supprimé dans Swift 3. Utilisez l’opérateur ‘.. <'

J’utilise le code suivant:

var continousDigitsRange:Range = Range(start: 0, end: 0) 

Depuis la mise à jour vers Xcode 7.3 (Swift 2.2), j’ai eu le conseil suivant:

‘init (start: end :)’ est obsolète: il sera supprimé dans Swift 3. Utilisez l’opérateur ‘.. <'.

Pour moi, il n’est pas clair comment le “traduire” correctement avec “en utilisant l’opérateur” .. <".

    Vous devriez simplement écrire

     var continousDigitsRange1:Range = 0..<0 

    ou si vous voulez aller encore plus simple

     var continousDigitsRange = 0..<0 

    À noter aussi, à subssortingngWithRange une Ssortingng, vous pouvez maintenant utiliser

     let theSsortingng = "Hello, how are you" let range = theSsortingng.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end) theString.substringWithRange(range) 

    L’opérateur d’intervalle fermé (a...b) définit une plage allant de a à b et inclut les valeurs a et b. La valeur de a ne doit pas être supérieure à b.

    L’opérateur de plage semi-ouvert (a.. définit une plage allant de a à b, mais n'inclut pas b. On dit qu'il est à moitié ouvert car il contient sa première valeur, mais pas sa valeur finale. Comme avec l'opérateur d'intervalle fermé, la valeur de a ne doit pas être supérieure à b. Si la valeur de a est égale à b, la plage résultante sera vide.

    Le langage de programmation rapide (Swift 2.2) - Opérateurs de base

     var continousDigitsRange:Range = Range(start: 0, end: 0) --to-- var continousDigitsRange:Range = 0..<0 

    pour montrer la réponse de bmichotte en entier …

     let theSsortingng = "Hello, how are you today my friend" let start = 3 let end = 15 let range = theSsortingng.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end) let p = theString.substringWithRange(range) print("this is the middle bit>\(p)< ") 

    cela produit ceci est le bit du milieu> lo, comment sont <

    Ajout de quelques points en référence à swift 3.0

    // Exemple de plage dénombrable.

    let range1 = 0..<5

    Exemple de plage fermée dénombrable

     let range2 = 0...5 

    // Portée des bornes

     let range = Range(uncheckedBounds: (range1.lowerBound,range1.upperBound)) 

    // Pour obtenir la distance de subssortingngRange.

     let str = "Hello, how are you" let subssortingngRange = str.characters.indices 

    // Au-dessous de Swift 3.0

     let length = subssortingngRange.distance(from: subssortingngRange.startIndex, to: subssortingngRange.endIndex) 

    // Pour Swift 3.0

     let length2 = str.distance(from: subssortingngRange.startIndex, to: subssortingngRange.endIndex) 

    J’ai toujours eu une fonction pour obtenir l’intervalle de sous-chaîne d’une chaîne. Voici ma fonction mise à jour pour Swift 3:

     func getSubSsortingngRange(fullSsortingng: Ssortingng, fromIndex: Int, subSsortingngSize: Int) -> Range { let startIndex = fullSsortingng.characters.index(fullSsortingng.startIndex, offsetBy: fromIndex) let endIndex = fullSsortingng.characters.index(startIndex, offsetBy: subSsortingngSize) let subSsortingngRange = startIndex.. 

    La fonction est assez explicite - Vous passez une chaîne (fullSsortingng), l'index de cette chaîne où la sous-chaîne commence (fromIndex) et la taille de la sous-chaîne (subSsortingngSize).

    Exemple:

     let greeting = "Hi, my name is Nathaniel" let getName = greeting[getSubSsortingngRange(fullSsortingng: greeting, fromIndex: 15, subSsortingngSize: 9)] print("Name: \(getName)") 

    -> Tirages: "Nom: Nathaniel"