Aquí hay algunas comparaciones entre operaciones equivalentes en Objective-C y Swift:
Inicialización de la matriz:
C objetivo:
NSArray * myArray = [[NSArray alloc] init];
- ¿Cuál es la mejor tienda de comercio electrónico?
- ¿Dónde está el mejor esquí y snowboard en los Estados Unidos?
- ¿Dónde está el mejor lugar para vivir en Virginia?
- ¿Cuál es la mejor cámara para iniciar la fotografía?
- ¿Cuáles son las mejores historias de fan fiction de LOTR?
Rápido:
deja myArray = String [] ();
Ambas líneas de código crean una matriz vacía utilizando la sintaxis del inicializador.
La creación de una matriz con elementos también se ve muy diferente:
C objetivo:
NSArray * myArray = [[NSArray alloc] initWithObjects: @ “one”, @ “two”, @ “three”, nil];
Rápido:
var myArray = [“one”, “two”, “three”];
Otro elemento emocionante de Swift es lo limpio y fácil que es leer la sintaxis. Esto permite a los desarrolladores producir código más mantenible mientras se divierten haciéndolo. Además, Swift incluye un bucle for-in que facilita la iteración en matrices, diccionarios, rangos, cadenas y otras secuencias. El bucle puede usar rangos exclusivos e inclusivos, y los paréntesis son opcionales. Tradicional para bucles también están disponibles para su uso también.
Usar el bucle for-in en Swift se vería así:
para índice en 1… 5 {
println (“index: \ (index)”)
}
Esto recorrerá los números del 1 al 5, imprimiendo el índice actual. Esta sintaxis es otra forma en que Swift ha aumentado la legibilidad, lo que hace que sea muy fácil de entender lo que hace el código. A primera vista, Swift parece ofrecer una buena combinación de sintaxis y funciones para el desarrollo de Apple que probablemente ayudará a escribir código conciso y expresar instrucciones de maneras que antes no eran posibles.
El siguiente ejemplo muestra una clase que define un método simple de clase / tipo para agregar dos enteros. Tenga en cuenta que Swift evita la necesidad de una interfaz separada:
C objetivo:
@interface MyClass: NSObject
+ (INT) addValue: (INT) value1 toValue: (INT) value2;
@fin
@ Implementación MyClass
+ (INT) addValue: (INT) value1 toValue: (INT) value2 {
devuelve valor1 + valor2;
}
@fin
Rápido:
clase MyClass: NSObject {
class func addValue (valor: INT, toValue: INT) -> INT {
valor de retorno + toValue
}
}
Tipos de
C objetivo:
Persona * mate = [[Asignar persona] initWithName: @ “Matt Galloway”]; [matt sayHello];
Rápido:
var matt = Persona (nombre: “Matt Galloway”) matt.sayHello ()
Instrumentos de cuerda:
C objetivo:
Persona * persona = …;
NSMutableString * description = [[ NSMutableString alloc] init]; [description appendFormat: @ “% @ tiene% i años.”, Person.name , person.age];
si (persona.empleador) {
[descripción appendFormat: @ “Trabajan para% @.”, person.employer];
}
más
{[description appendString: @ “Están desempleados.”];
}
Rápido:
var description = “” description + = “\ ( person.name ) tiene \ (person.age) años.”
if person.employer {description + = “Trabajan para \ (person.employer)”. }
else {description + = “Están desempleados”. }
Cambiar declaraciones:
C objetivo:
if ([ person.name isEqualToString: @ “Matt Galloway”]) {NSLog (@ “Autor de un interesante artículo de Swift”);}
else if ([ person.name isEqualToString: @ “Ray Wenderlich”]) {NSLog (@ “Tiene un gran sitio web”);}
else if ([ person.name isEqualToString: @ “Tim Cook”]) {NSLog (@ “CEO de Apple Inc.”);}
else {NSLog (@ “Alguien más);}
Rápido:
cambiar persona.nombre {
caso “Matt Galloway”: println (“Autor de un interesante artículo de Swift”)
caso “Ray Wenderlich”: println (“Tiene un gran sitio web”)
caso “Tim Cook”: println (“CEO de Apple Inc.”)
predeterminado: println (“Alguien más”)}