240 發(fā)簡信
IP屬地:黑龍江
  • 基于 CocoaPods 的組件二進(jìn)制化實(shí)踐

    火掌柜 iOS 客戶端經(jīng)過近兩年的組件化推進(jìn)夜赵,組件數(shù)量已經(jīng)頗具規(guī)模,達(dá)到了近 100 個。隨著組件數(shù)量和代碼量越來越多,主工程的打包時間從最初的十幾分鐘,增加到了現(xiàn)在的四十分...

  • @fcf1c3fe3c6a 我用這個做的是群聊,服務(wù)器保存 用戶上線拉取复亏。

    MQTT使用小記

    MQTT全稱Message Queue Telemetry Transport趾娃,是一個針對輕量級的發(fā)布/訂閱式消息傳輸場景的協(xié)議,同時也是被推崇的物聯(lián)網(wǎng)傳輸協(xié)議缔御。MQTT詳細(xì)...

  • 利用策略模式增強(qiáng)圖片瀏覽器的擴(kuò)展性

    說到圖片瀏覽器抬闷,項目中比較常用的成熟框架有Objective-C版本的MWPhotoBrowser,IDMPhotoBrowser或者Swift版本的SKPhotoBrows...

  • 使用AssetsLibrary和PhotoKit做一個簡易的相片選擇器

    iOS8之后,蘋果推出了PhotoKit笤成,讓開發(fā)者在處理相冊相關(guān)的業(yè)務(wù)時评架,可以更加得心應(yīng)手。github上的開發(fā)者針對PhotoKit做了一層很優(yōu)秀的封裝CTAssetsPi...

  • @半塊 嗯炕泳,是的纵诞,我關(guān)于這一塊的內(nèi)容都只是創(chuàng)建了block,并沒有調(diào)用培遵。

    Block技巧與底層解析

    目錄 Block底層解析什么是block浙芙?block編譯轉(zhuǎn)換結(jié)構(gòu)block實(shí)際結(jié)構(gòu)block的類型NSConcreteGlobalBlock和NSConcreteStackB...

  • @OldSix1987 嗯,多謝提醒荤懂。
    這里我后面也指明了《可以看到茁裙,block`復(fù)制`時塘砸,會retain捕捉對象节仿,以增加其引用計數(shù)〉羰撸》廊宪,也就是在copy block時會retain捕捉對象,可能寫的不太清晰吧女轿。
    還有《oc對象的引用計數(shù)器不會+1箭启,源碼調(diào)用了block_retain,但是里面什么也沒做》這里我不是很同意蛉迹。你說的代碼應(yīng)該是下面這一部分吧:
    ******************************************
    // 1
    static void _Block_assign_default(void *value, void **destptr) {
    *destptr = value;
    }
    static void (*_Block_retain_object)(const void *ptr) = _Block_retain_object_default;
    // 2
    void _Block_use_GC( void *(*alloc)(const unsigned long, const bool isOne, const bool isObject),
    void (*setHasRefcount)(const void *, const bool),
    void (*gc_assign)(void *, void **),
    void (*gc_assign_weak)(const void *, void *),
    void (*gc_memmove)(void *, void *, unsigned long)) {

    _Block_retain_object = _Block_do_nothing;
    _Block_release_object = _Block_do_nothing;
    _Block_assign_weak = gc_assign_weak;
    _Block_memmove = gc_memmove;
    }
    ******************************************
    上面部分代碼都表明_Block_retain_object里面實(shí)際上并沒有執(zhí)行真正有效的代碼傅寡,在默認(rèn)和GC情況都是。不過我感覺下面一段代碼可能會改變里面的動作:

    ******************************************
    void _Block_use_RR( void (*retain)(const void *),
    void (*release)(const void *)) {
    _Block_retain_object = retain;
    _Block_release_object = release;
    }
    ******************************************
    從block的copy來看北救,確實(shí)會有retain的動作荐操,所以我猜測可能有這樣一段代碼:
    ******************************************
    // ESBlockRuntime的實(shí)現(xiàn)
    _Block_use_RR( (retain)&CFRetain, &CFRelease );
    ******************************************

    指定了_Block_retain_object的動作,實(shí)際上是有進(jìn)行retain的珍策,只是我沒有對block進(jìn)行copy動作托启,也就沒有調(diào)用_Block_object_assign函數(shù)。
    以上是我的一些粗略的看法==

    Block技巧與底層解析

    目錄 Block底層解析什么是block攘宙?block編譯轉(zhuǎn)換結(jié)構(gòu)block實(shí)際結(jié)構(gòu)block的類型NSConcreteGlobalBlock和NSConcreteStackB...

  • MQTT使用小記

    MQTT全稱Message Queue Telemetry Transport屯耸,是一個針對輕量級的發(fā)布/訂閱式消息傳輸場景的協(xié)議,同時也是被推崇的物聯(lián)網(wǎng)傳輸協(xié)議蹭劈。MQTT詳細(xì)...

  • 更加快速地設(shè)置Frame

    由于現(xiàn)在手頭上的項目是基于frame開發(fā)的疗绣,沒有xib或者storyboard,沒有使用自動布局铺韧,所以排布界面時總是顯得很繁瑣多矮。 令人蛋疼的frame布局 老代碼對界面的坐標(biāo)...

  • 在Swift實(shí)現(xiàn)Struct歸檔

    在Swift中工窍,Struct類型是無法進(jìn)行歸檔操作的割卖,只有繼承自NSObject并且遵守了NSCoding協(xié)議的類才可以進(jìn)行相應(yīng)的歸檔操作。也就是將上面結(jié)構(gòu)體改成類: 但是如...

  • Octopress因為Ruby版本出現(xiàn)push不生效問題

    使用Octopress提交改的博客配置患雏,但是發(fā)現(xiàn)配置并沒有生效鹏溯,然后本地預(yù)覽也報以下錯誤: 上網(wǎng)搜了下資料,已經(jīng)有人遇到過了Errno::ENOENT: No Such Fi...

個人介紹

簡書不再更新

后續(xù)更新會記錄在我的 Blog:
https://triplecc.github.io/

我的github:
https://github.com/tripleCC
亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品