2021 – as of September: Notes on new job hopping in IOS development


IOS basic questions

What is the difference between classification and extension? What can they do separately? What are the limitations of classification? Which members are there in the classified structure?
Talk about the implementation mechanism of atomic; Why can’t absolute thread safety be guaranteed (preferably in combination with scenarios)?
What happens when an object modified by weak is released? How is it achieved? Do you know sidetable? Can you draw the structure inside?
What are the applications of associated objects and how does the system manage associated objects? Do you need to manually empty the pointers of all associated objects when it is released?
The underlying implementation of KVO? How to cancel the default KVO and trigger it manually (set conditions for KVO trigger: trigger KVO when the changed value meets certain conditions)?
What is the data structure used by autoreleasepool? Do you understand the autoreleasepoolpage structure?
Talk about the composition of objects, class objects, metaclasses, metaclass structures and how they are associated? Why are object methods not stored in the object structure, but in the structure of class objects?
class_ ro_ T and class_ rw_ What’s the difference between T?
Several methods of introspection in IOS? Class method and objc_ What’s the difference between getClass methods?
Create the method objc of the class at run time_ Why is the tail of allocateclasspair’s method name pair?
An int variable is__ The difference between block modification and no modification?
Why is it used outside the block__ The weak modification needs to be used internally__ Strongmodify?
What is the role of runloop? Do you understand its internal working mechanism? (it’s best to combine thread and memory management)
Which scenes can trigger off screen rendering? (say as much as you know)

IOS practical questions

How does appdelegate lose weight?
What is reflection? Can you name a few application scenarios? (say as much as you know)
What scenarios are easier to implement with nsoperation than with GCD? (or how much do you know about NSD)
App launch optimization strategy? It’s better to start the process (say what you know before and after the execution of the main () function)
Do you understand the idea of APP traceless burial point? What characteristics do you think an ideal traceless buried point system should have? (say as much as you know)
Do you know what situations will lead to app crash, and what methods can be used to intercept and resolve them? (say as much as you know)
Do you know what can lead to app jamming and what methods can be used to avoid it? (say as much as you know)

Network questions

What are the optimization strategies for the app network layer?
Why does TCP shake hands three times and wave four times?
What is the difference between symmetric encryption and asymmetric encryption? Which algorithms are implemented?
HTTPS handshake process? Why does asymmetric encryption need to be used for key transmission? Two way authentication, understand?
How does HTTPS achieve authentication and authentication integrity?
How to catch HTTPS packets with Charles? What is the principle and process?
What is man in the middle attack? How to avoid?

Computer system problem

Do you know the compilation process? What are the steps?
Static links understand? What is the difference between static library and dynamic library?
What are the functions of the memory regions?
What’s the difference between static and const?
Do you know about inline functions?
When will a deadlock occur? How to avoid?
Tell me about your understanding of thread safety?
List thread synchronization strategies you know?
What kinds of locks are there? Their respective principles? What is the difference between them? It’s best to use it in combination with scenarios

Design pattern question

In addition to the single case and observer design patterns, what other design patterns do you know? Introduce them respectively
Which design pattern do you like best? Why?
What are the practices of design patterns in IOS SDK?
What problems are design patterns designed to solve?
What is the composition and working mechanism of design patterns?
What are the advantages and disadvantages of design patterns?

Architecture & design questions

What is the difference between MVC and MVVM? What is the difference between MVVM and MVP?
Do you understand several object-oriented design principles? It’s best to combine it with the scene.
Can you say some refactoring skills? When do you think refactoring is appropriate?
What do you think is the difference between framework and design pattern?
What third-party frameworks have you seen and how are they designed? Where is the good design, where is the bad design, and how to improve it? (the last three questions of this question are already very difficult. If it is not too n company, it is not recommended to study it deeply)

Data structure & algorithm problem

What is the difference between a linked list and an array? What are the time complexity of insertion and query?
How is the hash table implemented? How to resolve address conflicts?
Sort questions: bubble sort, select sort, insert sort, quick sort (two-way, three-way) what can you write?
Linked list question: how to detect whether there are links in the linked list? How to delete all nodes equal to a certain value in the linked list?
Array question: how to find two elements whose sum is equal to the given value in an ordered array? How to keep order after merging two ordered arrays?
Binary tree question: how to reverse the binary tree? How to verify that two binary trees are completely equal?

Answer: because the articles are limited, take what you need

Interview answer website: docs qq. com/doc/DVWlQam9Qd3B1cEF2

For your interview, for your job hopping, come on, IOS development