240 發(fā)簡信
IP屬地:北京
  • KVO 的實現(xiàn)原理

    概述 KVO,即:Key-Value Observing钱慢,它提供一種機制逮京,當指定的對象的屬性被修改后,則其觀察者就會接受到通知束莫。簡單的說就是每次指定的被觀察的對象的屬性被修改...

  • @handyTOOL 我是說懒棉,這邊不是切成了正方形掉落么,我想切成的正方形變成圓掉落览绿。于是要切個圓角

    iOS特效之你家玻璃碎了

    點擊獲取本文示例代碼 前言 最近逛博客看到了一篇帖子策严,里面介紹了自己如何設計一套星球大戰(zhàn)主題的UI,里面有一個界面破碎的特效饿敲,看著很炫酷妻导,那篇文章的作者使用了UIDynami...

  • 我也試過這個特效來做轉場動畫。但是我不想掉落這么生硬诀蓉。首先想要的是圓角掉落栗竖,可是圓角切割太耗性能了。然后是切出來的大小隨機渠啤,這個實現(xiàn)了狐肢。對于圓角有啥可行的方案嗎?

    iOS特效之你家玻璃碎了

    點擊獲取本文示例代碼 前言 最近逛博客看到了一篇帖子沥曹,里面介紹了自己如何設計一套星球大戰(zhàn)主題的UI份名,里面有一個界面破碎的特效,看著很炫酷妓美,那篇文章的作者使用了UIDynami...

  • @亮仔123 不合適僵腺,運行時的運行操作看rewrite源碼分析沒有用『埃看rewrite源碼學習辰如,一般都是看比如說 block, category 會被rewrite成什么樣的代碼贵试,了解語言層面的知識

    神經(jīng)病院Objective-C Runtime出院第三天——如何正確使用Runtime

    前言 到了今天終于要"出院"了琉兜,要總結一下住院幾天的收獲凯正,談談Runtime到底能為我們開發(fā)帶來些什么好處。當然它也是把雙刃劍豌蟋,使用不當?shù)脑捓壬ⅲ矔蔀殚_發(fā)路上的一個大坑。 目...

  • [xx class] 和 object_getClass(xx) 實現(xiàn)是一樣的梧疲。這個 rewrite 源碼成 c 代碼就能看到允睹。

    對于KVO,底層應該是交換了 NSKVONotifying_Student 的 class 方法幌氮,讓其返回 Student

    /////////下文有誤//////////

    這里要特別說明一下缭受,為何打印object_getClass方法和class方法打印出來結果不同。

    - (Class)class {
    return object_getClass(self);
    }

    Class object_getClass(id obj)
    {
    if (obj) return obj->getIsa();
    else return Nil;
    }
    從實現(xiàn)上看浩销,兩個方法的實現(xiàn)都一樣的贯涎,按道理來說,打印結果應該相同慢洋,可是為何在加了KVO以后會出現(xiàn)打印結果不同呢?

    打印這句話object_getClass(stu)的時候陆盘,isa當然是NSKVONotifying_Student普筹。

    + (BOOL)respondsToSelector:(SEL)sel {
    if (!sel) return NO;
    return class_respondsToSelector_inst(object_getClass(self), sel, self);
    }
    當我們執(zhí)行NSLog的時候,會執(zhí)行上面這個方法隘马,這個方法的sel是encodeWithOSLogCoder:options:maxLength:太防,這個時候,self是NSKVONotifying_Student酸员,上面那個respondsToSelector 方法里面return的object_getClass(self)結果還是NSKVONotifying_Student蜒车。

    打印[stu class]的時候,isa當然還是NSKVONotifying_Student幔嗦。當執(zhí)行到NSLog的時候酿愧,+ (BOOL)respondsToSelector:(SEL)sel,又會執(zhí)行到這個方法邀泉,這個時候的self變成了Student嬉挡,這個時候respondsToSelector方法里面的object_getClass(self)輸出當然就是Student了。

    神經(jīng)病院Objective-C Runtime出院第三天——如何正確使用Runtime

    前言 到了今天終于要"出院"了汇恤,要總結一下住院幾天的收獲庞钢,談談Runtime到底能為我們開發(fā)帶來些什么好處。當然它也是把雙刃劍因谎,使用不當?shù)脑捇ǎ矔蔀殚_發(fā)路上的一個大坑。 目...

  • 感謝呀饭冬,我看英文書看得暈暈的,有幸看到你的翻譯...對照著看速度起飛...

  • 之前看了你這篇拓挥,感覺input output這種思路分割不錯唠梨,昨天看到ReactorKit這個百多行的庫。感覺里面的Action就是你這兒的input侥啤,Status就是output当叭。mutaion操作就是你的vm。有興趣的可以看看RxTodo這個demo

    基于RxSwift的MVVMR架構(一)思想盖灸、基本原理及初步實現(xiàn)

    摘要 本系列文章將詳細分析iOS的MVVMR架構模式蚁鳖,并基于Swift的響應式、函數(shù)式編程框架RxSwift提供相應的實現(xiàn)赁炎。系列共分為兩個部分: MVVMR架構的思想醉箕、基本原...

  • 請問下,Storage封裝了網(wǎng)絡請求和數(shù)據(jù)庫操作同波,那么業(yè)務邏輯是在VC里做么鳄梅?model是不是只是數(shù)據(jù)的表達?

    Object-C代碼規(guī)范

    最近在整理代碼未檩,所以將以前積累的一些代碼規(guī)范方面的知識分享出來戴尸,希望能對大家編碼時有所幫助。一個好的代碼風格的重要性冤狡,不言而喻孙蒙,希望大家能重視。 下面是小編在平時積累的悲雳,肯定...

亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品