Advertisement
Guest User

iOS Test

a guest
Mar 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. Preguntas test iOS
  2.  
  3. //Propiedades
  4. 1- ¿Cual es la diferencia entre una propiedad de tipo strong y una weak? (Hyper básica)(Importante)
  5. 2- ¿Cual es la diferencia entre una propiedad atomic y non-atomic? (Basica)
  6. 3- ¿Cual es la diferencia entre copy y retain? (Normal)
  7. 4- ¿Puede un int ser de tipo strong, nonatomic? y un NSInteger? y un NSNumber? (Normal)
  8. 5- ¿Se puede escribir un setter en una propiedad retain? (Dificil)
  9.  
  10.  
  11.  
  12. //Protocolos y Mensajes
  13. 1- ¿Que es un delegado? (Basica) (Importante)
  14. 2- ¿Que es un protocolo? (Normal)
  15. 3- ¿Un delegado debe ser retenido? ¿Por que? (Normal)
  16. 4- ¿Que es un selector y que relación tiene con los delegados? (Normal)
  17. 5- ¿Como enviarías un mensaje de una instancia a otra sin mantener una referencia a ella? (Normal)
  18. 6- ¿Que es KVO? (Dificil)
  19.  
  20.  
  21. //UI
  22. 1- ¿Cual es la diferencia entre un UIView y un UIViewController? (Básica)
  23. 2 - ¿Que es MVC? ¿Como se implementa? (Basica)(Importante)
  24. 3- ¿De que formas se puede mover de un controller a otro? (Basica)
  25. 4- ¿Con que elemento se puede implementar el menu hamburguesa? (Normal)
  26. 5- ¿Cuales son los eventos del ciclo de vida de un UIViewController? (Normal)
  27. 6- ¿Que es el reuseIdentifier en UITableView? (Normal)
  28. 7- ¿Que es autolayout?¿Que significa que una constraint sea rota por iOS? (Normal) (Importante)
  29. 8- ¿Que son los layers? (Normal)
  30. 9- ¿Que es UIControl? ¿Que estados puede tener? (Especifica)
  31. 10- ¿Que diferencia hay entre frame y bounds?
  32. 11- Mostrar donde esta el bug (Normal) (Importante)
  33.  
  34. - (void)viewDidLoad {
  35. CGRect frame = CGRectMake(100, 100, 100, 50);
  36. self.alert = [[UILabel alloc] initWithFrame:frame];
  37. self.alert.text = @"Please wait...";
  38. [self.view addSubview:self.alert];
  39. dispatch_async(
  40. dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
  41. ^{
  42. sleep(10);
  43. self.alert.text = @"Waiting over";
  44. }
  45. );
  46. }
  47.  
  48. //Memoria
  49. 1-¿ Que es ARC? ¿Es un tipo de Garbage Collection? (Normal)
  50. 2-¿Que son los bloques y como se usan? (Normal)
  51. 3- Si tenemos 3 objetos: abuelo, padre e hijo, el abuelo retiene al padre, el padre al hijo y el hijo al padre, Si el abuelo libera al padre, ¿Que sucede? (Normal)(Importante)
  52. 4- Como se puede manejar programación multi-thread en iOS? (Normal)
  53.  
  54.  
  55.  
  56. //Almacenamiento
  57. 1- ¿Que es NSUserDefaults?¿Que tipo de datos se pueden almacenar ahi? (Normal)
  58. 2- ¿Que motor de base de datos ocupa iOS? (Normal)
  59. 3- ¿Como almacenarlas información privada del usuario offline en el dispositivo? (Para ver conocimientos de seguridad)
  60.  
  61.  
  62. Respuestas:
  63.  
  64. //Propiedades
  65. 1- strong aumenta el object reference count de la propiedad en 1, si el object reference count de un objeto es 0 arc libera esa variable, weak no aumenta el object reference count
  66. 2- Define si los getter/setter se acceden de manera sincronica entre los multiples hilos dando consistencia al dato al costo de performance. atomic sincronica, nonatomic asincronica, generalmente se prefiere performance(non-atomic).
  67. 3- copy hace una copia del objeto y retain mantiene una referencia de la misma manera que strong.
  68. 4- strong solo se utiliza con punteros como NSNumber, int y NSInteger no son punteros por lo que no utilizan strong
  69. 5- Si se puede.
  70.  
  71. //Protocolos y Mensajes
  72. 1- Es una clase que se encarga de procesar algo que haría otro objeto, o que actúa en lugar de otra
  73. 2- Un grupo de métodos o propiedades que no son especificas a ninguna clase en particular y que puede ser implementado por cualquier clase. La clase que implementa el protocolo se conoce como delegado.
  74. 3- No debe ser retenido ya que su existencia es independiente de la clase que define el protocolo.
  75. 4- Un selector es el nombre que se le da a la selección de un método para ejecutar dicho método. se relaciona con los delegados ya que ellos implementan los selectores del protocolo.
  76. 5- Mediante un NSNotification
  77. 6- Es un patron de escucha donde un objeto recibe mensajes constantes por cambios producidos en otro objeto. por ejemplo el % de descarga de un archivo.
  78.  
  79. //UI
  80. 1- UIView es un fragmento de la vista mientras que un UIViewController es un controlador que generalmente representa una pantalla de la aplicación.
  81. 2- Modelo-vista-controlador. La vista muestra los resultados del procesamiento del controlador de los datos de un modelo.
  82. 3- Mediante un Push (UINavigationController), presentación Modal/PopOver, Mediante UITabBarController.
  83. 4- No hay un elemento nativo en iOS que permita ese comportamiento. Tendría que ser algo custom.
  84. 5- init, ViewDidLoad, ViewWillAppear/ViewDidAppear, ViewWillDisappear/ViewDidDisappear, dealloc.
  85. 6- reuseIdentifier es un identificador que se utiliza para rehusar las celdas que salen de la vista de la tabla en vez de generar nuevas.
  86. 7- AutoLayout es un sistema que permite manejar ciertas reglas para crear una vista que permiten ajustarse a diferentes tamaños de pantallas automáticamente. Significa que hay constraint que son conflictivas entre ellas por ejemplo: maxHeight = 50, minHeight= 70.
  87. 8- Layers son capas de representación gráfica asociadas a cada vista, la mayor diferencia con un UIView es que un layer no responde a gestos.
  88. 9- UIControl es la clase padre de los elementos UI nativos que responden a gestos, botones, switch, etc. Sus estados son enabled, selected, highlighted
  89. 10- Frame muestra las coordenadas de la vista en referencia a la vista padre, mientras que Bounds muestra las coordenadas en referencia a la misma vista, en otras palabras en bounds el punto de origen siempre es (0,0) mientras que en frame puede ser la mitad de la vista padre. por ej (30, 30) si la vista es de 60x60 pts.
  90. 11- self.alert.text = @"Waiting over";. Esta linea se ejecuta desde un Background Thread, todos los cambios a la vista se deben ejecutar en el Hilo principal.
  91.  
  92. //Memoria
  93. 1- Automatic Reference Count es el sistema de manejo de memoria automatico encargado de revisar los reference count de cada objeto y hacer los llamados de liberacion de los objetos cuyos reference count sea 0. Técnicamente no es garbage collection ya que no libera el mismo la memoria pero es bastante similar ya que ingresa los llamados a liberar la memoria.
  94. 2- Son fragmentos de código que pueden ser pasados como parámetros de ciertos métodos . Se utilizan para ejecutar ese codigo asincronicamente cuando alguna condición se cumpla. por ejemplo cuando se termine de procesar una descarga.
  95. 3- Se genera un ciclo de retención entre el padre y el hijo, esto es muy malo ya que esa memoria queda tomada por siempre y nunca va a ser liberada hasta que se mate la app.
  96. 4- Mediante GCD (dispatch) donde el sistema ocupa algún hilo disponible o genera uno nuevo o mediante NSThread donde el mismo programador define su propio hilo para manejar cierta tarea.
  97.  
  98. //Almacenamiento
  99. 1- Es un diccionario definido por defecto para cada a aplicacion, donde se pueden guardar datos persistentes, solamente se puede guardar objetos del sistema(NSString, NSNumber, NSArray) y no clases especificas.
  100. 2- sqlite
  101. 3- (Ver que practicas de seguridad utiliza.. básicamente no se debería guardar info privada offline ya que cualquier dispositivo puede ser crackeado por ej.)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement