概述 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ī)范方面的知識分享出來戴尸,希望能對大家編碼時有所幫助。一個好的代碼風格的重要性冤狡,不言而喻孙蒙,希望大家能重視。 下面是小編在平時積累的悲雳,肯定...