240 發(fā)簡(jiǎn)信
IP屬地:北京
  • 他想表達(dá)的是意思是:子線程的 runloop 無(wú)法通過(guò)系統(tǒng)自動(dòng)創(chuàng)建侥涵,必須有開(kāi)發(fā)者手寫(xiě)創(chuàng)建并開(kāi)啟坷剧。

    iOS面試題:一個(gè) autorealese 對(duì)象在什么時(shí)刻釋放趟大?

    分兩種情況:手動(dòng)干預(yù)釋放時(shí)機(jī)探熔、系統(tǒng)自動(dòng)去釋放锰扶。 手動(dòng)干預(yù)釋放時(shí)機(jī):手動(dòng)指定 autoreleasepool 的 autorelease 對(duì)象瞄桨,在當(dāng)前作用域大括號(hào)結(jié)束時(shí)釋放遣疯。 ...

  • 120
    iOS VIPER架構(gòu)實(shí)踐(二):VIPER詳解與實(shí)現(xiàn)

    第一篇文章對(duì)VIPER進(jìn)行了簡(jiǎn)單的介紹,這篇文章將從VIPER的源頭開(kāi)始扶镀,比較現(xiàn)有的幾種VIPER實(shí)現(xiàn)蕴侣,對(duì)VIPER進(jìn)行進(jìn)一步的職責(zé)剖析,并對(duì)各種細(xì)節(jié)實(shí)現(xiàn)問(wèn)題進(jìn)行挖掘和探討臭觉。...

  • 還要一中是基于 Protocol 的 router昆雀,參考 ZIKRouter

    iOS 組件化 —— 路由設(shè)計(jì)思路分析

    前言 隨著用戶的需求越來(lái)越多辱志,對(duì)App的用戶體驗(yàn)也變的要求越來(lái)越高。為了更好的應(yīng)對(duì)各種需求狞膘,開(kāi)發(fā)人員從軟件工程的角度揩懒,將App架構(gòu)由原來(lái)簡(jiǎn)單的MVC變成MVVM,VIPER等...

  • target-action 提供了遠(yuǎn)程調(diào)用和本地調(diào)用為主挽封,遠(yuǎn)程調(diào)用是將 url 方式轉(zhuǎn)換成本地調(diào)用的 perfortarget

    iOS 組件化 —— 路由設(shè)計(jì)思路分析

    前言 隨著用戶的需求越來(lái)越多已球,對(duì)App的用戶體驗(yàn)也變的要求越來(lái)越高。為了更好的應(yīng)對(duì)各種需求辅愿,開(kāi)發(fā)人員從軟件工程的角度智亮,將App架構(gòu)由原來(lái)簡(jiǎn)單的MVC變成MVVM,VIPER等...

  • 首先線程和runloop是一一對(duì)應(yīng)的, 當(dāng)開(kāi)啟線程時(shí)會(huì)伴隨創(chuàng)建一個(gè)runloop, 但這個(gè)runloop并不會(huì)向主線程一樣自動(dòng)開(kāi)啟, 需要你執(zhí)行 getCurrent 方法進(jìn)行開(kāi)啟, 這個(gè)所謂的創(chuàng)建是說(shuō)沒(méi)法對(duì) runloop 使用 new/alloc 方法進(jìn)行創(chuàng)建, 子線程的runloop和主線程的runloop的最主要最作用都是為了保證線程不會(huì)退出, 讓事件得以執(zhí)行完成, 但是當(dāng)線程需要銷毀時(shí), 對(duì)應(yīng)的runloop自然也需要被釋放.

    iOS 多線程:『RunLoop』詳盡總結(jié)

    本文首發(fā)于我的個(gè)人博客:「程序員充電站」[https://itcharge.cn]文章鏈接:「?jìng)魉烷T(mén)」[https://itcharge.cn/ios-complete-le...

  • @動(dòng)感超人丶 如果你有印象的話,就會(huì)發(fā)現(xiàn)老的 runtime和新的 runtime 中的 objc_class 結(jié)構(gòu)為什么差異會(huì)那么大, 還需要一個(gè)class_rw_t 和class_ro_t 哈哈哈

    iOS-分類(Category)

    Category是Objective-C 2.0之后添加的語(yǔ)言特性,分類苗踪、類別其實(shí)都是指的Category遭笋。Category的主要作用是為已經(jīng)存在的類添加方法。Objecti...

  • 靜態(tài)庫(kù)是編譯期的時(shí)候連接的吧, 要不然編譯出來(lái)的可執(zhí)行文件就不能執(zhí)行了.

    深入理解iOS App的啟動(dòng)過(guò)程

    前言 啟動(dòng)時(shí)間是衡量應(yīng)用品質(zhì)的重要指標(biāo)徒探。 本文首先會(huì)從原理上出發(fā),講解iOS系統(tǒng)是如何啟動(dòng)APP的喂窟,然后從main函數(shù)之前和main函數(shù)之后倆個(gè)角度去分析如何優(yōu)化啟動(dòng)時(shí)間测暗。 ...

  • @上帝不在服務(wù)區(qū) 元類存儲(chǔ)的是類相關(guān)的信息, 類存儲(chǔ)的是實(shí)例對(duì)象的信息, 那么如果是類方法調(diào)用, 自然是操作元類, 而元類也是Class類型, 不知道是不是因?yàn)檫@個(gè), 造成了類對(duì)象的isa指向NSArray類的筆誤(沒(méi)惡意)?

    iOS Runtime:Class 和 meta-class

    1、Class Objective-C類是由Class類型來(lái)表示的磨澡,它實(shí)際是一個(gè)指向objc_class結(jié)構(gòu)體的指針碗啄。它的定義如下 objc_class結(jié)構(gòu)體定義如下: 在這...

  • 交換方法的中最好要在執(zhí)行自己的方法, 簡(jiǎn)單說(shuō)A<->youFunc互換, youFunc中要執(zhí)行[self youFunc], 這樣別人在A中就可以添加操作了, 并不需要交換回來(lái).

    iOS開(kāi)發(fā)·runtime原理與實(shí)踐: 方法交換篇(Method Swizzling)(iOS“黑魔法”,埋點(diǎn)統(tǒng)計(jì)稳摄,禁止UI控件連續(xù)點(diǎn)擊稚字,防奔潰處理)

    本文Demo傳送門(mén):MethodSwizzlingDemo 摘要:編程,只了解原理不行厦酬,必須實(shí)戰(zhàn)才能知道應(yīng)用場(chǎng)景胆描。本系列嘗試闡述runtime相關(guān)理論的同時(shí)介紹一些實(shí)戰(zhàn)場(chǎng)景,...

  • @PerryMorning 首先要弄清楚是所有的局部變量的指針都在棧區(qū), 而值還要看這個(gè)對(duì)象的創(chuàng)建方式是否用到了new 或者 alloc, 絕大部分用到的都在堆區(qū), 少部分經(jīng)過(guò)編譯器處理的依然還會(huì)在原來(lái)的位置. 其次要弄清楚動(dòng)態(tài)分配內(nèi)存的時(shí)候, 會(huì)根據(jù)系統(tǒng)位數(shù)以及對(duì)象的大小判斷使用傳統(tǒng)存儲(chǔ)方式還是Tagged Pointer方式, 傳統(tǒng)意義上來(lái)說(shuō)要分清對(duì)象的值和對(duì)象的指針這兩個(gè)概念, 對(duì)象的指針指向了對(duì)象的值所在的地址, 而指針也需要存儲(chǔ)空間, 也就是說(shuō)在伴隨對(duì)象創(chuàng)建的時(shí)候, 會(huì)申請(qǐng)一塊空間同時(shí)存儲(chǔ)指針和值這兩個(gè)東西, 而 Tagged Pointer 簡(jiǎn)單說(shuō)就是把指針和值同時(shí)存儲(chǔ)在了一個(gè)地址上, 而這個(gè)地址每一位都有自己所代表的意義, 能把它當(dāng)對(duì)象使用也是因?yàn)樗袑?duì)象的指針信息以及值信息, 因?yàn)樗皇菍?duì)象所以沒(méi)有isa指針. 另外就內(nèi)存分配而言, 棧地址高于堆地址.

    深入理解Tagged Pointer

    在調(diào)試程序或者反編譯App時(shí),經(jīng)痴淘模可以看到"NSTaggedPointerString"這個(gè)東西例如: 打印: 這里首先會(huì)有兩個(gè)問(wèn)題:1.為什么創(chuàng)建出來(lái)的地址分為兩種?2.t...

  • 這個(gè)地方要解釋兩個(gè)部分:
    1. performSelect:底層調(diào)用
    - performSelect: 方法底層判斷了傳入的 sel 是否存在, 不存在報(bào)方法不存在, 存在調(diào)用 msgSend:方法發(fā)送消息.
    2. msgSend: 原理
    - 發(fā)送消息是會(huì)查詢當(dāng)前 Class 的 methodList 中是否有與 sel 相對(duì)應(yīng)的方法實(shí)現(xiàn), 如果有直接執(zhí)行(會(huì)忽略消息轉(zhuǎn)發(fā)). 如果沒(méi)有, 判斷動(dòng)態(tài)解析中是否新的方法實(shí)現(xiàn), 如果沒(méi)有才去執(zhí)行 forwardingTargetForSelector: 走消息轉(zhuǎn)發(fā)流程, 因此圖中的 '返回YES | 返回NO', 說(shuō)的并不是方法的返回值.

    iOS Runtime詳解

    Runtime的特性主要是消息(方法)傳遞窄驹,如果消息(方法)在對(duì)象中找不到,就進(jìn)行轉(zhuǎn)發(fā)证逻,具體怎么實(shí)現(xiàn)的呢乐埠。我們從下面幾個(gè)方面探尋Runtime的實(shí)現(xiàn)機(jī)制。 Runtime介紹...

  • 120
    iOS Runtime詳解

    Runtime的特性主要是消息(方法)傳遞瑟曲,如果消息(方法)在對(duì)象中找不到饮戳,就進(jìn)行轉(zhuǎn)發(fā),具體怎么實(shí)現(xiàn)的呢洞拨。我們從下面幾個(gè)方面探尋Runtime的實(shí)現(xiàn)機(jī)制扯罐。 Runtime介紹...

  • name 傳 @"", 你傳nil不會(huì)報(bào)警告嗎?

    深入理解iOS NSNotification

    NSNotification在平時(shí)開(kāi)發(fā)中使用非常頻繁花吟。網(wǎng)上關(guān)于NSNotification介紹大多是停留在用法的介紹秸歧,基本上沒(méi)有深入介紹NSNotification原理的文章...

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