
前言 幾年前剛看到《原則》的時候,書中內容就給了我很大的感觸:按照一定的原則去行事,不斷調整和踐行自己的原則,生活和工作會給出截然不同的反饋。以前自己總有很多想法,作為感性的...
多個分類重寫原有類方法,排序也是固定的。分類中的方法都在原來類方法的前面,而分類中相同的方法,會根據你Xcode中 Build Phases ->Complie Source 里文件的順序來排序,在最下面的分類文件中的方法會被調用。
而load方法的調用方式跟其他方法不一樣,在程序啟動加載類,完成分類的合成之后,RunTime會主動調用類和分類的load方法。而調用方式是找到load方法的方法地址,通過地址直接調用,不會通過objc_msgSend方法去調用,就不會去方法列表里面去查找,也就不會有“假覆蓋”情況的出現。
iOS面試題:category 和 extension 有什么區別?category 是如何加載的?category 的方法覆蓋是怎么處理的?extension 在編譯期決定,它就是類的一部分,在編譯期和頭文件里的 @interface 以及實現文件里的 @implement 一起形成一個完整的類,它伴隨類的產生而...
CADisplayLink、NSTimer會對target產生強引用,如果target又對它們產生強引用,那么就會引發循環引用。如果沒有在dealloc之前主動關閉(調用in...
如何實現以下場景,“多讀單寫”,經常用于文件等數據的讀寫操作 同一時間,只能有1個線程進行寫的操作 同一時間,允許有多個線程進行讀的操作 同一時間,不允許既有寫的操作,又有讀...
Objective-C在變為機器代碼之前,會被LLVM編譯器轉換為中間代碼 OC -> 中間代碼(.ll) -> 匯編、機器代碼 可以使用以下命令行指令生成中間代碼 clan...
想要查看某個文件的匯編代碼是怎么樣的,可以這樣做: 選中某個文件 點擊Product -> Perform Action -> Assemble "xxx.m"截屏2020-...
@dynamic :告訴編譯器不要生成setter、getter方法和成員變量_age@synthesize age; // 為屬性age生成_age成員變量,setter...
1. __block可以用于解決block內部無法修改auto變量值的問題 2. __block不能修飾全局變量、靜態變量(static) 3. __block修飾變量時,編...
問題:在使用clang轉換OC為C++代碼時,可能會遇到cannot create __weak reference 問題:cannot create __weak refe...
昨天,一個名字突然空降在微博熱搜榜上: 岑怡諾。 14歲神童,號稱能一天“作詞300首、詩2000首、寫15000字小說”,曾四次參加演講比賽獲獎,還是兩個品牌的創始人。 這...
Category能否添加成員變量? 不能直接給Category添加成員變量,但能間接實現成員變量的效果。能直接添加屬性。添加的屬性,只能生成getter、setter方法的聲...