create - ''init(start: end:)'' está en desuso: se eliminará en Swift 3. Use el operador ''..<''
uiviewcontroller swift (6)
Estoy usando el siguiente código:
var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0)
Desde la actualización de Xcode 7.3 (Swift 2.2) recibí la siguiente pista:
''init (start: end :)'' está en desuso: se eliminará en Swift 3. Utilice el operador ''.. <''.
Para mí no está claro cómo "traducirlo" correctamente con "usando el operador ''.. <''.
El operador de rango cerrado
(a...b)
define un rango que va de a a b e incluye los valores a y b. El valor de a no debe ser mayor que b.El operador de rango medio abierto
(a..<b)
define un rango que va de a a b, pero no incluye b. Se dice que está medio abierto porque contiene su primer valor, pero no su valor final. Al igual que con el operador de rango cerrado, el valor de a no debe ser mayor que b. Si el valor de a es igual a b, el rango resultante estará vacío.
El lenguaje de programación Swift (Swift 2.2) - Operadores básicos
var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0)
--to--
var continousDigitsRange:Range<Int> = 0..<0
Agregar algunos puntos con referencia a swift 3.0
// Ejemplo de rango contable.
let range1 = 0..<5
Ejemplo de rango cerrado contable
let range2 = 0...5
// Rango desde límites
let range = Range(uncheckedBounds: (range1.lowerBound,range1.upperBound))
// Para obtener la distancia de substringRange.
let str = "Hello, how are you"
let substringRange = str.characters.indices
// Debajo de Swift 3.0
let length = substringRange.distance(from: substringRange.startIndex, to: substringRange.endIndex)
// Para Swift 3.0
let length2 = str.distance(from: substringRange.startIndex, to: substringRange.endIndex)
Deberías simplemente escribir
var continousDigitsRange1:Range<Int> = 0..<0
o si quieres ir aún más simple
var continousDigitsRange = 0..<0
Siempre he tenido una función para obtener el rango de subcadena de una cadena. Aquí está mi función actualizada para Swift 3:
func getSubStringRange(fullString: String, fromIndex: Int, subStringSize: Int) -> Range<String.Index> {
let startIndex = fullString.characters.index(fullString.startIndex, offsetBy: fromIndex)
let endIndex = fullString.characters.index(startIndex, offsetBy: subStringSize)
let subStringRange = startIndex..<endIndex
return subStringRange
}
La función se explica por sí misma: pasa una cadena (fullString), el índice de esa cadena donde comienza la subcadena (fromIndex) y qué tan grande es la subString (subStringSize).
Ejemplo:
let greeting = "Hi, my name is Nathaniel"
let getName = greeting[getSubStringRange(fullString: greeting, fromIndex: 15, subStringSize: 9)]
print("Name: /(getName)")
-> Impresiones: "Nombre: Nathaniel"
También vale la pena señalar, para
substringWithRange
a String, ahora puede usar
let theString = "Hello, how are you"
let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end)
theString.substringWithRange(range)
para mostrar la respuesta de bmichotte en su totalidad ...
let theString = "Hello, how are you today my friend"
let start = 3
let end = 15
let range = theString.startIndex.advancedBy(start) ..< theString.startIndex.advancedBy(end)
let p = theString.substringWithRange(range)
print("this is the middle bit>/(p)<")
esto produce este es el bit medio> lo, ¿cómo están <