不知不觉,发现距离上一次发文章已经一年多了,自从换了新公司之后,每天都是挺充实的,额。。别找理由。。就是懒~所以今年重新捡起这个博客,继续不间断更新最近都在研究Flutter相关的东西,接下来的文章应该都围绕Flutter
不知不觉,发现距离上一次发文章已经一年多了,自从换了新公司之后,每天都是挺充实的,额。。别找理由。。就是懒~所以今年重新捡起这个博客,继续不间断更新最近都在研究Flutter相关的东西,接下来的文章应该都围绕Flutter
好久没写些什么东西了,似乎快有半年了吧。也不知道要写些什么,最近也跳槽了,复习了一段时间,所以应该重新开启新的行程了。
废话不多说,今天来研究下NSFastEnumeration
这个协议。
KVC(Key-value Coding)键值编码, 一个非正式的
Protocol
, 提供一种机制来间接访问对象的属性, 通俗来说就是可以者通过Key直接访问对象的属性,或者给对象的属性赋值, 而不需要显示的调用存取方法. 苹果的又一大黑魔法~~
NSURLProtocol 是 URL Loading System 中的一部分, 但是它十分的强大和牛逼, 可以说是苹果又一大黑魔法了, 它能够拦截所有的
URL Loading System
发出的网络请求, 拦截之后就可以做各种自定义处理. 下面就来看下这个神奇的东西。。。
这是
iOS
提供的一种 “同步的” 消息通知机制,观察者只要向消息中心注册, 即可接受其他对象发送来的消息,消息发送者和消息接受者两者可以互相一无所知,完全解耦。这种消息通知机制可以应用于任意时间和任何对象,观察者可以有多个,所以消息具有广播的性质.
🔐顾名思义。。锁上了表示就进不来,解锁后你才可以进来。。在开发中也是如此,在多线程开发中,就经常会使用到锁机制。锁是一种同步机制,用于在多线程的环境中对资源的访问限制,防止多个线程在同一时间操作资源.
不同的锁的性能与实现也是不一样的,我们就来研究下在iOS中的几种不同的锁~~
在iOS中,如果我们需要替换一个函数的实现,我们会想到通过
Method Swizzle
来实现,其实也就是通过runtime
提供的API在运行时将函数的实现给替换了,正是因为Objective-C
是动态语言,所以我们可以通过runtime
做各种事情。。。但是如果是静态语言(C),我们是否也可以将函数hook
住呢?
在程序启动的时候,我们总是认为程序的入口是从main函数开始的,但是在此之前,
dyld
已经干了很多事情了, 那什么是dyld
呢? 它能够干什么, 它又有什么作用呢? 接下来, 就来研究下这个神奇的东西…