The original intention of doing this is to consolidate my basic knowledge, and of course to help more developers. If the answer is inaccurate or incomplete, they can submit it to Github for improvement.

Github address: github.com/icofans/iOS…

Check online at ios.nobady.cn/

Mainly from the following aspects to do the sorting:

The data structure

  • 1. How many kinds of data structure storage are commonly used? What are their characteristics?
  • 2. Linear structure Tree structure graph structure
  • 3. One-way linked list Two-way linked list Circular linked list
  • 4. The difference between arrays and lists
  • 5. Stacks, stacks, and queues
  • 6. Enter the root of a binary tree and find the depth of the tree.
  • 7. Input the root node of the binary tree in lesson 1 and determine whether the tree is a balanced binary tree.

algorithm

  • 1. Time complexity
  • 2. Space complexity
  • 3. Common sorting algorithms
  • 4. String reversal
  • 5. List inversion (head difference method)
  • 6. Ordered array merge
  • 7. Find the first character that appears only once (Hash lookup)
  • 8. Find the common parent of the two child views
  • 9. The median in an unordered array (quick sorting idea)
  • 10. Given an array of integers and a target value, find two numbers that neutralize the target value in the array.

Foundation

  • 1. What’s the difference between nil, nil, NSNULL?
  • 2. How to implement a thread-safe NSMutableArray?
  • 3. Are atomic modified properties absolutely safe? Why is that?
  • 4. What should be paid attention to when implementing isEqual and hash methods?
  • 5. What’s the difference between ID and instanceType?
  • 6. Difference between self and super
  • What do 7.@synthesize and @dynamic do, respectively?
  • 8. Typeof andThe typeof, typeofThe difference between?
  • 9. Class
  • Struct and class

UIKit

  • 1. What is the relationship between UIView and CALayer?
  • 2. What’s the difference between Bounds and Frame?
  • 3. What is the relationship between setNeedsDisplay and layoutIfNeeded?
  • 4. Talk about your understanding of UIResponder
  • 5. What does loadView do?
  • 6. What are the effects of using drawRect?
  • 7. What’s the difference between keyWindow and Delegate window

WebView

  • 1. How many ways can JS and OC call each other?
  • 2. What problems have you encountered when using WKWedView?

Memory management

  • 1. What is the difference between the weak keyword and assign?
  • 2. How do I make my class use the copy modifier? How do I override a setter with the copy keyword?
  • What is the essence of 3.@property? How are ivar, getters, and setters generated and added to this class
  • How do you use @property in 4.@protocol and category
  • 5. A brief description of the @autoreleasepool data structure?
  • 6. When does BAD_ACCESS appear?
  • 7. What should I pay attention to when using CADisplayLink and NSTimer?
  • 8. IOS memory partitions
  • 9. IOS memory management mode

How messages are delivered

  • 1. Implementation principle of KVC
  • 2. Implementation principle of KVO
  • 3. How do I trigger the KVO method manually
  • 4. What is the difference between notification and agency
  • 5. The difference between block and delegate
  • 6. Why Block uses copy

network

  • 1. Layer 7 protocols
  • 2. What is the difference between Http and Https? Why is Https more secure?
  • 3.HTTPS connection establishment process
  • 4. Explain the three handshakes and the four waves
  • 5. Differences between TCP and UDP
  • 6. The Cookie and Session
  • 7. What is the DNS
  • 8.DNS resolution process

Data is stored

  • 1. What are the types of data persistence in iOS development?
  • 2.FMDB data structure changes and upgrades

multithreading

  • 1. Processes and threads
  • 2. What is multithreading?
  • 3. Advantages and disadvantages of multi-threading
  • 4. What is the difference between concurrency and parallelism of multiple threads?
  • 5. What are the characteristics of several schemes to achieve multi-threading in iOS?
  • 6. Go to the next step after multiple network requests are complete
  • 7. Perform the next step after executing multiple network requests in sequence
  • 8. If two groups of data are operated asynchronously, the second group can be executed only after the first group is executed
  • 9. Deadlocks in multiple threads?
  • 10. How does GCD work?

animation

  • 1. What is the difference between UIView animation and core animation?
  • 2. When we want to do some Calayer-based animation, sometimes we need to set the anchor point of the layer to match the animation. What should we pay attention to at this time?

The image processing

  • 1. Image compression method
  • 2. How to calculate the size of image loading memory

Data security and encryption

  • 1. The difference between symmetric encryption and asymmetric encryption?
  • 2. Describe the encryption methods used in SSL encryption and why.
  • 3. What is the signature mechanism of iOS

Runtime

  • 1. How does Category work?
  • 2. Where does the isa pointer point to? What are the two types of ISA Pointers?
  • 3. How does Objective-C implement multiple inheritance?
  • 4. How does runtime implement the weak attribute?
  • 5. Talk about the MESSAGE mechanism of OC
  • 6. Runtime application
  • 7. How does runtime find the corresponding IMP address by selector?
  • 8. Briefly describe the process of calling methods in Objective-C
  • 9. Load vs. Initialize
  • Objective-c is a dynamic runtime language.

Runloop

  • 1. How does Runloop relate to threads?
  • 2.RunLoop running mode
  • 3. Internal runloop logic?
  • 4. When is autoreleasePool released?
  • 5.GCD in Runloop?
  • 6. How to use Runloop in AFNetworking?
  • 7. How does PerformSelector work?
  • 8. PerformSelector: afterDelay: this method in the child thread work?
  • 9. Event response process?
  • 10. Gesture recognition process?
  • 11. Which is more accurate, CADispalyTimer or Timer

The project architecture

  • 1.MVC, MVP and MVVM modes
  • 2. How have you applied RAC to resolve different API dependencies
  • What is the difference between 3.@weakify and WeakSelf defined by our macro?
  • 4. Micro-service architecture.

Design patterns

  • 1. What are the common design patterns on iOS?
  • 2. What are the disadvantages of routine meetings?
  • 3. Six design principles for programming?

componentization

  • 1. What are the benefits of componentization?
  • 2. How do you decouple components?
  • 3. Why CTMediator scheme is superior to Router-based scheme?
  • 4. What are the core components of the componentization scheme based on CTMediator?

Debugging technique

  • 1. Common LLDB debugging commands?
  • 2. Breakpoint debugging
  • 3. What are the common iOS crash types?

Performance optimization

  • 1. What are the causes of tableView lag?
  • 2. How to improve the smoothness of tableView?
  • 3. From what aspects should APP startup time be optimized?
  • 4. How to reduce the size of the APP package
  • 5. How to detect off-screen rendering and optimization
  • 6. How to check for memory leaks?

The source code to understand

  • 1.YYKit
  • 2.SDWebImage loading process
  • 3. Compare YYWebImage with SDWebImage
  • 4.AFNetworking underlying principle analysis

Code management

  • 1. Comparison of advantages and disadvantages between SVN and Git
  • 2. Differences between Git and SVN

Continuous integration

  • 1. What continuous integration approach have you used in your projects?
  • 2. How do Jenkins backup and restore
  • 3. What plug-ins do you use for Jenkins?