Una experiencia estresante para los profesionales, sin duda, es el tener una entrevista de trabajo, ya sea telefónica, en línea o presencial, así que para evitar el estrés es clave hacer un trabajo de preparación.
El proceso de investigación van desde conocer la empresa con la que se entrevistará, al área de recursos humanos y equipo de ingeniería de la organización; hasta, hacer un repaso de tus habilidades y trabajar en tus debilidades, así estarás listo para comenzar.
Así que para apoyar a los profesionales TI, les compartiremos algunas de las preguntas técnicas más comunes que podrían realizarles a los desarrolladores en iOS:
- Explica la diferencia entre copiar y retener
Retener un objeto significa que el conteo de retención aumenta en uno. Esto significa que la instancia del objeto se mantendrá en la memoria hasta que el conteo de retención se reduzca a cero. La propiedad almacenará una referencia a esta instancia y compartirá la misma instancia con cualquier otra persona que la haya conservado también. Copiar significa que el objeto se clonará con valores duplicados. No se comparte con nadie más.
- ¿Cuál es la diferencia entre un «ID de aplicación» y un «ID de paquete» y para qué se utiliza cada una?
Una ID de aplicación es una cadena de dos partes utilizada para identificar una o más aplicaciones de un sólo equipo de desarrollo. La cadena consta de un ID de equipo y una cadena de búsqueda ID de paquete, con un punto (.) que separa las dos partes. La ID del equipo es suministrada por Apple y es exclusiva de un equipo de desarrollo específico, mientras que la cadena de búsqueda de ID del paquete es suministrada por el desarrollador para que coincida con la ID del paquete de una sola aplicación o un conjunto de ID de paquete para un grupo de aplicaciones.
Debido a que la mayoría de las personas piensa en el ID de la aplicación como una cadena, creen que es intercambiable con la identificación del paquete. Parece de esta manera porque una vez que se crea la ID de la aplicación en el Centro de miembros, solo utiliza el Prefijo de ID de la aplicación que coincide con la ID del paquete del Paquete de la aplicación.
El ID del paquete define de manera única cada aplicación. Está especificado en Xcode. Un solo proyecto de Xcode puede tener múltiples objetivos y, por lo tanto, generar múltiples aplicaciones. Un caso de uso común para esto es una aplicación que tiene versiones lite / free y pro / full o tiene varias formas de marca.
- ¿Cuál es la diferencia entre estados de ejecución no activos, inactivos, activos, de fondo y suspendidos?
No se está ejecutando: la aplicación no se ha iniciado o se estaba ejecutando, pero el sistema la canceló.
Inactivo: la aplicación se está ejecutando en primer plano, pero actualmente no está recibiendo eventos. (Sin embargo, puede estar ejecutando otro código). Una aplicación generalmente se mantiene en este estado solo brevemente, ya que transita a un estado diferente.
Activo: la aplicación se ejecuta en primer plano y está recibiendo eventos. Este es el modo normal para aplicaciones en primer plano.
Fondo: la aplicación está en segundo plano y ejecutando código. La mayoría de las aplicaciones ingresan a este estado brevemente en el camino hacia su suspensión. Sin embargo, una aplicación que solicita tiempo de ejecución adicional puede permanecer en este estado por un período de tiempo. Además, una aplicación que se inicia directamente en segundo plano ingresa a este estado en lugar de inactiva.
Suspendido: la aplicación está en segundo plano pero no está ejecutando código. El sistema mueve las aplicaciones a este estado automáticamente y no las notifica antes de hacerlo. Mientras está suspendido, una aplicación permanece en la memoria pero no ejecuta ningún código. Cuando se produce una condición de poca memoria, el sistema puede purgar las aplicaciones suspendidas sin aviso para hacer más espacio para la aplicación de primer plano.
- ¿Qué es una categoría y cuándo se usa?
Una categoría es una forma de agregar métodos adicionales a una clase sin ampliarla. A menudo se usa para agregar una colección de métodos relacionados. Un caso de uso común es agregar métodos adicionales a las clases integradas en los marcos de Cocoa. Por ejemplo, agregar métodos de descarga asíncrona a la clase UIImage.
Sólo mantén la calma, y en lugar de tratar de encontrar un número instantáneo en tu cabeza, camina con el entrevistador a través de tu tren de pensamientos contigo.