En primer lugar, debo decir que la mayoría de los entrevistados tienen de 1 a 3 años de experiencia en desarrollo de iOS. No es necesario encontrar un verdadero experto, por lo que creo que la mayoría de las preguntas. Los preparé. Todos son relativamente básicos y se puede ver el nivel de las personas en este nivel. Si también es un practicante con aproximadamente 3 años de experiencia en desarrollo, puede intentarlo.
Al inicio de la entrevista, le pediré al entrevistador que elija un proyecto con el que esté más familiarizado y nos presente su arquitectura técnica, así como los módulos y trabajos específicos en los que participó el entrevistador. Como odio tener que presentarme en las entrevistas, normalmente voy directo al grano y empiezo a hablar sobre el proyecto. De hecho, muchos desarrolladores no entienden el significado específico de "arquitectura" al que me refiero. Algunas personas hablan sobre muchas características del producto y otras hablan de manera muy general (como seguir la arquitectura MVC, etc.). Por lo general, los interrumpiré y les pediré que me digan directamente la estructura jerárquica o los módulos principales de la aplicación.
Luego haré dos preguntas:
1. Cuénteme sobre un momento en esta APLICACIÓN en el que el usuario activó un evento, provocó una solicitud de servicio y luego obtuvo la respuesta del servidor. Interfaz frontal actualizada y devuelta. Sea específico, como qué categorías de datos se han procesado y cuál es el formato de cada transmisión.
2. ¿Cómo maneja la APP en la que participas el lanzamiento simultáneo de múltiples servicios?
Luego deje que el entrevistador hable sobre la estructura de la interfaz de la aplicación, que es más informal.
Después de preguntar sobre el proyecto, comience con preguntas de conocimientos básicos~
1. (¿Para qué problema se creó el arco?)
2. Explique la diferencia entre las siguientes palabras clave: asignación frente a débil, _ _bloque frente a _ _débil.
3._ _ bloque ¿El significado de bloque significa lo mismo en arco y sin arco?
4. ¿Es seguro utilizar átomos para subprocesos?
5. Describe un ejemplo de un ciclo de retención que hayas encontrado. No mientas, definitivamente lo has experimentado.
6. Carga (nula); inicialización (nula);
7. ¿Por qué se llama llamada a funciones en otros lenguajes, pero en Objective C se llama enviar mensajes a objetos (o cómo se entiende el tiempo de ejecución)?
8. ¿Qué es el método swizzling?
9. ¿Cuál es la relación entre UIView y CALayer?
10. ¿Cómo agregar esquinas redondeadas a UIImageView con alto rendimiento? (¡Sin mencionar Layer.cornerRadius!)
11. ¿Cuáles son los efectos de usar drawRect? Esto puede ser profundo o superficial, al menos debes usarlo. . )
¿Cuál es la lógica de cargar imágenes en UIImageView en 12? ¿ASIHttpRequest o SDWebImage? (Es mejor poner UIImageView en UITableViewCell)
13 Diseñe un búfer de memoria de imagen simple (debe mencionarse la estrategia de eliminación).
14. Cuéntame tu experiencia en el uso de instrumentos musicales para optimizar el rendimiento de la animación (no me preguntes qué instrumentos musicales).
¿Cuánto es 15? ¿Para qué se utiliza loadView?
16. La vista que siempre conoces. .
¿Cuáles son las colas para el 17? ¿MCD? ¿Alguna vez ha configurado usted mismo una cola en serie? ¿Cuál es el modelo de subprocesos detrás de esto?
18. ¿Has usado alguna vez coredata o sqlite? ¿La lectura y la escritura son hilos separados? ¿Alguna vez te has encontrado con un punto muerto? ¿Cómo lo solucionaste?
¿Cuál es la diferencia entre post y get en 19? ¿http? Hay muchas diferencias, cuéntanos más.
20. Sé que no has estado expuesto a estructuras de datos algorítmicas después de graduarte de la universidad, pero dime ¿qué es un árbol de búsqueda binario? ¿Cuál es la complejidad temporal de la búsqueda? ¡Realmente quiero saberlo!