Características 10 Objective-C que no están en rápida

Si usted es un desarrollador de Objective-C con experiencia, esta lista te recuerda a algunas de las características que se pueden usar para que no están disponibles en Swift. En cada caso, se proporcionan soluciones y estrategias para reemplazar sus viejos amigos probada y verdadera de Objective-C. Y no te preocupes: En la mayoría de los casos, usted va a terminar de escribir menos código y su código será más robusto.

Decir adiós a cabecera (.h) archivos

En Swift, la cabecera (.h) Los archivos se han ido. los .h y .m archivos de cabeceras y cuerpos (llamados originalmente mensajes) de una clase se consolidan en una sola .rápido archivo.

Decir adiós a los punteros colgantes (casi siempre)

Es difícil (pero no imposible) para hacer referencia a un puntero colgando en Swift. En los últimos años, Objective-C también ha hecho tales referencias más difícil, pero siguen siendo claramente posible. Usted puede evitar problemas con estas referencias si usted hace la certeza de que los punteros a instancias se establecen siempre antes de ser utilizados, y que está establecido en nulo antes de que se cancela la asignación de la instancia. Swift utiliza muy pocos punteros, por lo que no se puede colgar.

Olvidándose de variables y propiedades sin inicializar

Swift requiere inicialización de propiedades declaradas, variables y constantes. Esto elimina de inmediato toda una serie de problemas que pueden ocurrir cuando se hace referencia a las variables sin inicializar y puede ya sea accidente o causar errores inesperados (y con frecuencia irrepetibles).

La explotación de una superclase comunes como NSObject

La mayoría de los objetos en Objective-C son subclases de NSObject- casi todos ellos ajustarse a la NSObject protocolo. Así, colecciones como NSArray y NSDictionary puede contener objetos de cualquier tipo, siempre y cuando son subclases de NSObject. En Swift, los elementos de una matriz o diccionario no tienen una superclase común, pero sí tienes que tener un tipo común de modo que puedan ser manipulados. Esta es ahora su responsabilidad.

Tipo de Gerente de fundición

Objective-C logra la conversión de tipos en los que se puede, pero si su hipótesis sobre el reparto correcto difiere de Objective-C de, su código puede bloquearse. Con Swift, que tiene que hacer el casting de forma explícita. Sin embargo, Swift se puede inferir un tipo de los valores iniciales de las variables o constantes, por lo que, en conjunto, su código es más robusto y que puede llegar a necesitar menos de la misma, ya que permite tipos Deducir Swift para usted.

Prefiriendo cierres de bloques

Bloques en Objective-C son como los cierres en otros idiomas. En Swift, esa función es proporcionada por los cierres, y la documentación refleja este uso.

Deshacerse de la gestión de memoria legado

Aunque la gestión de memoria manual con alloc y dealloc ha sido # 173-desaprobado en Swift, tanto código aún existe de que sea lo usa o se refiere a ella en los comentarios y líneas comentadas de salida de código. Si va a convertir código antiguo en lugar de escribir nuevo código Swift de la nada, vale la pena para eliminar estos vestigios de la gestión de memoria manual. Es muy poco probable que volverán.

Sustitución de los decoradores de propiedad

En lugar de Objective-C decoradores de propiedad de, Swift tiene anotaciones en las declaraciones. La mezcla de atributos, tales como solo lectura, fuerte, débil, y similares, se ha ido con Swift. La información necesaria se engloba en los tipos.

Usando el estilo Swift acceder a las propiedades de clase

Estilo Swift utiliza la sintaxis con punto para hacer referencia a los objetos dentro de una clase, estructura o enumeración. Retire cualquier sintaxis basada en el soporte sobrante.

Aclarar el control de acceso Swift

Las directivas de privacidad en Objective-C se manejan de manera diferente en Swift. En Objective-C utiliza las siguientes directivas:

  • private

  • protected

  • public

Declaraciones de métodos y propiedades también se pueden colocar tanto en el .h archivo o en una extensión de clase de un .m archivo. Esto proporciona dos maneras disjuntos de # Visibilidad de 173 especificando.

Swift no tiene .h o .m archivos y, por lo tanto, no hay extensiones de clase con hiddendeclarations. Tiene un modelo de control de acceso único usando

  • público

  • privado

  • interna

Estos son parte de la propia lengua en lugar de ser directivas de compilación.




» » » » Características 10 Objective-C que no están en rápida