10 Características de objective-c que no están en rápida

Si usted es un desarrollador con experiencia en Objective-C, esta lista le recuerda a algunas de las características que se pueden utilizar 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 se preocupe: En la mayoría de los casos, que va a terminar de escribir menos código, y su código será más robusta.

Video: Objective C Tutorial

Decir adiós a archivos de cabecera (.h)

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

Despidiéndose de referencia colgante (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 asegurarse de que los punteros a los casos siempre se establecen antes de que se utilizan, y que está fijado a nulo antes se desasigna la instancia. Swift utiliza muy pocos puntos, por lo que no se puede colgar.

Olvidándose de variables y propiedades sin inicializar

Swift requiere la inicialización de propiedades declaradas, variables y constantes. Esto elimina inmediatamente toda una serie de problemas que pueden ocurrir cuando se hace referencia a las variables sin inicializar y es posible que sea fallar o provocar 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 tales 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, sino que tiene que tener un tipo común de modo que puedan ser manipuladas. Este es ahora su responsabilidad.

Tipo de Gestión de la fundición

Objective-C maneja la conversión de tipos en los que puede, pero si su suposición sobre el reparto correcta 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 en realidad se puede necesitar menos de la misma, ya que permite Deducir tipos Swift para usted.

Prefiriendo cierres de bloques

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

Video: Elementos de Objective C

Deshacerse de la gestión de memoria legado

Aunque la gestión de memoria manual con alloc y dealloc ha quedado en desuso 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 desde cero, vale la pena para eliminar estos vestigios de gestión de memoria manual. Es muy poco probable que volverán.

Sustitución de decoradores de propiedad

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

Usando el estilo Swift acceder a las propiedades de clases

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

Aclaración de control de acceso Swift

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

  • @privado

  • @protegido

  • @público

Declaraciones de métodos y propiedades también se pueden colocar tanto en el .marido un archivo o en una extensión de clase de un .metro archivo. Esto proporciona dos formas de especificar la visibilidad disjuntos.

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

  • público

  • privado

  • interno

Estos son parte de la propia lengua en lugar de ser directivas del compilador.

Artículos Relacionados