Preface:
Recently I have been organizing my technology stack, and I have collected some important knowledge points to share with you.
Runloop
1. The principle of touch event transfer and response in iOS
2. Why is only the main thread runloop enabled
3. Why only refresh the UI on the main thread
4. Relation between PerformSelector and runloop
5.GCD in Runloop?
6. How to use Runloop in AFNetworking?
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. How to understand the message mechanism of Objective-C?
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
Objective-c is a dynamic runtime language.
KVO
1. Implementation principle
2. Does modifying attributes via KVC trigger KVO? What is the assignment and evaluation process of KVC? How does it work?
3. Under what circumstances will KVO crash and how to prevent crash
4. Advantages and disadvantages of KVO
Block
1. The internal implementation of block, what is the structure like
2. What is the difference between an int variable being modified by __block or not?
3. Block When modifying NSMutableArray, do you need to add __block
4. How does Block manage memory
5. How do blocks get copied to the heap
6. Does _block mean the same under ARC and MRC?
multithreading
1. How many types of threads are there in iOS development? For example, respectively
2. GCD queue type
3. How to achieve thread synchronization in as many ways as possible
4. Implementation principle of dispatch_once
5. Under what circumstances will deadlocks occur
This is my iOS development exchange group: 519832104 no matter you are small white or big ox welcome to enter, you can share experience, discuss technology, learn and grow together! In addition, attached is a large factory interview questions collected by friends, need iOS development learning materials, the real interview questions, join can receive!
Click here to communicate and learn with iOS
Architecture design
1. MVC, MVP and MVVM design patterns
Common design patterns
3. Advantages and disadvantages of singletons
4. If the stability of the project is guaranteed
5. Design an Image caching framework (LRU)
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. Enter the root of a binary tree 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
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. The difference between nil, nil, NULL, and 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
The difference between 7.@dynamic and @synthesize
Swift
1. How do Swift and OC call each other?
Struct and class
3. Advantages of classes and structs
4. What is the difference between open, public, internal, fileprivate and private?
5. How to set some methods in Swift protocol as optional?
6.Swift tail closure, escape closure, automatic closure
UIKit
1. What is the relationship between UIView and CALayer?
2. What’s the difference between Bounds and Frame?
3. Talk about your understanding of UIResponder
4. Use of loadView method
5. What’s the difference between keyWindow and Delegate window
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. What are the ways of image compression?
2. How to calculate the size of image loading memory
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
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?
The source code to understand
1.YYKit
2.SDWebImage loading process
3. Comparison between YYWebImage and SDWebImage
4.AFNetworking underlying principle analysis
Code management
1. Comparison of advantages and disadvantages between SVN and Git
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?