‘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"