without create swift xcode7.3

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 <