In the previous two posts, we have introduced the operation of 'KVO', and the underlying logic of 'KVO' is implemented by dynamically subclassing and overriding...
The Grand Central Dispatch (GCD) Dispatch queue is a powerful tool for performing tasks. Scheduling queues allow you to execute arbitrary blocks of code asynchronously...
With the more and more complex business logic in the actual development, more and more heavy tasks need to be completed, the application of multithreading...
In the previous article we explored some of the underlying principles surrounding objc_msgSend. We find that in the process of slow lookup there is such...
Key-value encoding is a mechanism enabled by the 'NSKeyValueCoding' informal protocol that an object uses to provide indirect access to its properties. When an object...
Key-value observation is a mechanism that allows an object to be notified when a specified property of another object changes. You can look at properties,...
This is the third day of my participation in the August Changwen Challenge. For details, see: August Changwen Challenge I. The principle analysis of the...
This article aims to familiarize you with SwiftUI and provide practical data and features for clients to refer to when selecting technologies. It also hopes...
In the previous article, we have analyzed the application loading process, which we are familiar with. We have clearly seen that the dyld library function...
Custom KVO, support multi-attribute listening, support automatic release. System KVO needs to write a lot of code, it needs to be manually released, and we...
@[toc] Block Outline Specification What are Blocks? In a nutshell, anonymous functions with automatic variables (local variables) do what their names imply: Block has no...
In my previous posts, I focused on the low-level exploration of class loading, including classification loading, so this time I will look at class extensions...
This interview is about understanding the depth of copy. This article will start with the difference between deep and shallow copying, and then explain the...
What is the purpose of this chapter The process of slow lookup of source messages the dynamic protocol of messages, instance methods, and class methods...
The introduction of asynchronous and multithreaded locks to improve program performance means that thread safety has become a barrier to multithreading, hence the emergence of...