First, UI view

It includes the understanding of event passing, view response, UI layout, drawing, Tableview reuse mechanism and other basic technical points, but also includes off-screen rendering, streaming page performance optimization, asynchronous rendering, UI rendering mechanism and other partial low-level technology investigation.

Objective-C

It includes the implementation principle and mechanism of systems such as KVO, KVC, classification, extension and associated object, as well as the investigation of related technical points such as NSNotification and attribute keywords.

Third, the Runtime

It can be said that the necessary technical requirements of intermediate and above engineers, the interviewers will often examine your understanding of objects, class objects, metaclass objects, message passing mechanism, message forwarding process, method-Swizzling, ISa-Swizzling, dynamic Method parsing, dynamic addition Method, etc.

4. Memory management

It can be said that it is a high order examination point, but also difficult, advanced and above can not avoid the problem. The main contents include: weak auto-set nil, ARC, MRC, the realization principle of auto-release pool, circular reference, reference count management idea, etc.

Five, the Block,

OC language features are very important in iOS, and are also frequently tested in interviews. These include intercepting variable properties, the __Block keyword, the nature of blocks, memory management of blocks, and circular references.

Vi. Multi-threading

Advanced test points for interviews. IOS common multithreading technology NSOperation&NSOperationQueue, NSThread, GCD; So in the interview process, we will often combine the actual code to inspect the depth of multi-threaded technology, including the investigation of common locks, such as NSLock, recursive lock, spin lock, conditional lock and so on.

Seven, RunLoop

We all know that RunLoop can be used to work and not to rest. In the interview, we will explore more in-depth, why RunLoop can be used to work and not to rest, and how the system is implemented. How to implement a resident thread, how runloops relate to threads, and so on.

Eight, the network

These topics include HTTP related man-in-the-middle attacks, HTTPS connection establishment process, symmetric encryption, asymmetric encryption, DNS hijacking, TCP’s sliding window protocol, how reliable transmission is guaranteed, and TCP’s slow start characteristics, the difference between Session and Cookie, etc., all of which are required questions for senior job interview.

9. Design mode

These include common software design principles, chains of responsibility, adapters, Bridges, commands, singletons, policy patterns, etc. The interviewer will ask you to test your understanding and application of design patterns in the context of actual business scenarios.

X. Structure/framework

It includes common questions such as how to design image caching framework and network framework, how to realize the overall architecture of the client side, and what are the common decoupling methods? Most people know OpenURL is a decoupling scheme, but dependency injection may be unfamiliar to many people, which is also the answer expected by the interviewer.

Xi. Algorithm

Including BAT, TMD often investigated ordered array merge, linked list inversion, string inversion, large number addition algorithm ideas, and so on, this part of the change is a lot.

Xii. Third Party

Common AFNetworking, SDWebImageView, Reactive Cocoa, React Native, etc.