概述 KVO父能,即:Key-Value Observing晾腔,它提供一種機制灯荧,當(dāng)指定的對象的屬性被修改后列肢,則其觀察者就會接受到通知华蜒。簡單的說就是每次指定的被觀察的對象的屬性被修改...
@handyTOOL 我是說载庭,這邊不是切成了正方形掉落么看彼,我想切成的正方形變成圓掉落廊佩。于是要切個圓角
iOS特效之你家玻璃碎了點擊獲取本文示例代碼 前言 最近逛博客看到了一篇帖子,里面介紹了自己如何設(shè)計一套星球大戰(zhàn)主題的UI靖榕,里面有一個界面破碎的特效标锄,看著很炫酷,那篇文章的作者使用了UIDynami...
我也試過這個特效來做轉(zhuǎn)場動畫茁计。但是我不想掉落這么生硬料皇。首先想要的是圓角掉落,可是圓角切割太耗性能了星压。然后是切出來的大小隨機践剂,這個實現(xiàn)了。對于圓角有啥可行的方案嗎娜膘?
iOS特效之你家玻璃碎了點擊獲取本文示例代碼 前言 最近逛博客看到了一篇帖子逊脯,里面介紹了自己如何設(shè)計一套星球大戰(zhàn)主題的UI,里面有一個界面破碎的特效竣贪,看著很炫酷军洼,那篇文章的作者使用了UIDynami...
@亮仔123 不合適,運行時的運行操作看rewrite源碼分析沒有用演怎∝罢看rewrite源碼學(xué)習(xí),一般都是看比如說 block颤枪, category 會被rewrite成什么樣的代碼汗捡,了解語言層面的知識
神經(jīng)病院Objective-C Runtime出院第三天——如何正確使用Runtime前言 到了今天終于要"出院"了淑际,要總結(jié)一下住院幾天的收獲畏纲,談?wù)凴untime到底能為我們開發(fā)帶來些什么好處。當(dāng)然它也是把雙刃劍春缕,使用不當(dāng)?shù)脑挼琳停矔蔀殚_發(fā)路上的一個大坑。 目...
[xx class] 和 object_getClass(xx) 實現(xiàn)是一樣的锄贼。這個 rewrite 源碼成 c 代碼就能看到票灰。
對于KVO,底層應(yīng)該是交換了 NSKVONotifying_Student 的 class 方法宅荤,讓其返回 Student
/////////下文有誤//////////
這里要特別說明一下屑迂,為何打印object_getClass方法和class方法打印出來結(jié)果不同。
- (Class)class {
return object_getClass(self);
}
Class object_getClass(id obj)
{
if (obj) return obj->getIsa();
else return Nil;
}
從實現(xiàn)上看冯键,兩個方法的實現(xiàn)都一樣的惹盼,按道理來說,打印結(jié)果應(yīng)該相同惫确,可是為何在加了KVO以后會出現(xiàn)打印結(jié)果不同呢手报?
打印這句話object_getClass(stu)的時候蚯舱,isa當(dāng)然是NSKVONotifying_Student。
+ (BOOL)respondsToSelector:(SEL)sel {
if (!sel) return NO;
return class_respondsToSelector_inst(object_getClass(self), sel, self);
}
當(dāng)我們執(zhí)行NSLog的時候掩蛤,會執(zhí)行上面這個方法枉昏,這個方法的sel是encodeWithOSLogCoder:options:maxLength:,這個時候揍鸟,self是NSKVONotifying_Student兄裂,上面那個respondsToSelector 方法里面return的object_getClass(self)結(jié)果還是NSKVONotifying_Student。
打印[stu class]的時候阳藻,isa當(dāng)然還是NSKVONotifying_Student懦窘。當(dāng)執(zhí)行到NSLog的時候,+ (BOOL)respondsToSelector:(SEL)sel稚配,又會執(zhí)行到這個方法畅涂,這個時候的self變成了Student,這個時候respondsToSelector方法里面的object_getClass(self)輸出當(dāng)然就是Student了午衰。
神經(jīng)病院Objective-C Runtime出院第三天——如何正確使用Runtime前言 到了今天終于要"出院"了冒萄,要總結(jié)一下住院幾天的收獲,談?wù)凴untime到底能為我們開發(fā)帶來些什么好處尊流。當(dāng)然它也是把雙刃劍,使用不當(dāng)?shù)脑捬录迹矔蔀殚_發(fā)路上的一個大坑。 目...
感謝呀,我看英文書看得暈暈的冀瓦,有幸看到你的翻譯...對照著看速度起飛...
之前看了你這篇摆马,感覺input output這種思路分割不錯,昨天看到ReactorKit這個百多行的庫读恃。感覺里面的Action就是你這兒的input隧膘,Status就是output。mutaion操作就是你的vm寺惫。有興趣的可以看看RxTodo這個demo
基于RxSwift的MVVMR架構(gòu)(一)思想疹吃、基本原理及初步實現(xiàn)摘要 本系列文章將詳細(xì)分析iOS的MVVMR架構(gòu)模式,并基于Swift的響應(yīng)式萨驶、函數(shù)式編程框架RxSwift提供相應(yīng)的實現(xiàn)。系列共分為兩個部分: MVVMR架構(gòu)的思想腔呜、基本原...
請問下,Storage封裝了網(wǎng)絡(luò)請求和數(shù)據(jù)庫操作涂召,那么業(yè)務(wù)邏輯是在VC里做么?model是不是只是數(shù)據(jù)的表達(dá)果正?
Object-C代碼規(guī)范最近在整理代碼,所以將以前積累的一些代碼規(guī)范方面的知識分享出來舱卡,希望能對大家編碼時有所幫助。一個好的代碼風(fēng)格的重要性轮锥,不言而喻,希望大家能重視舍杜。 下面是小編在平時積累的新娜,肯定...