240 發(fā)簡(jiǎn)信
IP屬地:北京
  • LeetCode 刷題集 - 動(dòng)態(tài)規(guī)劃(4)

    動(dòng)態(tài)規(guī)劃定義[https://en.wikipedia.org/wiki/Dynamic_programming] 初識(shí)動(dòng)態(tài)規(guī)劃:如何巧妙解決“雙十一”購(gòu)物時(shí)的湊單問題咙咽?[h...

  • LeetCode 刷題集 - 分治自沧、回溯儿倒、貪心、二分查找、BFS、DFS(3)

    分治算法:談一談大規(guī)模計(jì)算框架 MapReduce 中的分治思想[http://time.geekbang.org/column/article/73503] 回溯算法:從電...

  • LeetCode 刷題集 - 散列表、二叉樹屁桑、遞歸(2)

    散列表(上):Word 文檔中的單詞拼寫檢查功能是如何實(shí)現(xiàn)的?[http://time.geekbang.org/column/article/64233] 散列表(中):如...

  • LeetCode 刷題集 - 數(shù)組栏赴、鏈表蘑斧、棧、隊(duì)列(1)

    數(shù)組:為什么很多編程語(yǔ)言中數(shù)組都從 0 開始編號(hào)须眷?[http://time.geekbang.org/column/article/40961] 鏈表:如何實(shí)現(xiàn) LRU 緩存...

  • @Double丶K 調(diào)用func0時(shí)竖瘾,傳進(jìn)去的是b2,就是說cself就是b2。Block結(jié)構(gòu)體捕獲了test的瞬時(shí)值就是那個(gè)字符串花颗,然后作為參數(shù)捕传,用來(lái)初始化Block,接著用初始化好的結(jié)構(gòu)體給b2變量賦值(指針賦值 b2指向初始化好的Block)。b2結(jié)構(gòu)體中的成員變量test是新建的扩劝,所以他的地址跟外面的test地址一定不同庸论,而指向的對(duì)象卻是同一個(gè)职辅,對(duì)象是誰(shuí)呢字符串"test1111"。你的截圖和你的解釋都有問題聂示,分析這個(gè)問題,關(guān)鍵要看C++中的int main()方法而不是fun0罐农,這是其一。其二是你的解釋催什,Block并沒有拷貝任何東西。Block拷貝東西是要調(diào)用_block_copy->XXassign的宰睡。這里只是單純的值截獲蒲凶。解釋產(chǎn)生新指針要在Block的結(jié)構(gòu)體_block_impl_0中去看,因?yàn)樾绿砹艘粋€(gè)成員變量 NSString *test;

    iOS block 面試題(看這篇就夠了)

    此類的例子很多博客都有,只是解釋的都很模糊,看了也還是不明白 第一題: test會(huì)打印什么?因?yàn)樯? 答案是test1111 原因: /*2019-03-07 15:36:0...

  • iOS引用計(jì)數(shù)

    前情提要: 引用計(jì)數(shù)內(nèi)存管理: 自己生成對(duì)象自己持有; 非自己生成的對(duì)象拆内,自己也能持有; 不再需要自己持有的對(duì)象時(shí)釋放; 非自己持有的對(duì)象無(wú)法釋放旋圆。 生成并持有對(duì)象: all...

  • GCD死鎖解析及相關(guān)API

    前情提要 GCD極大地簡(jiǎn)化了平時(shí)開發(fā)中處理多線程問題的難度,但有時(shí)會(huì)遇上死鎖麸恍,導(dǎo)致各種各樣的問題灵巧,本文用簡(jiǎn)短的,通俗易懂的方式抹沪,與大家一起討論如何分析死鎖刻肄,了解了形成死鎖的根...

  • 第一題你的解釋不對(duì)。之所以指針地址變了跟NSString *test = __cself->test; // bound by copy是沒有關(guān)系的融欧,這條語(yǔ)句敏弃,只是從cself的結(jié)構(gòu)體里拿到了他的成員變量test。關(guān)鍵在于這個(gè)test是block初始化結(jié)構(gòu)體中的一個(gè)成員變量噪馏,相當(dāng)于初始化結(jié)構(gòu)體的時(shí)候麦到,向內(nèi)存新申請(qǐng)了一個(gè)NSString類型的指針,只不過現(xiàn)在沒有指向任何值欠肾。在block的初始化結(jié)構(gòu)體初始化的時(shí)候瓶颠,會(huì)有一個(gè)賦值的過程,直接將字符串test111111賦值給該結(jié)構(gòu)體的成員變量test,也就是cself->test刺桃。
    rewrite下,字符串test被我改成了testasdasd方便看:
    NSString *testasdasd = (NSString *)&__NSConstantStringImpl__var_folders_xh_7qhjzbrx7zz361c_rtp2lh0w0000gn_T_ViewController_00e2ba_mi_0;
    TestBlock b2 = ((void (*)())&__ViewController__viewDidLoad_block_impl_0((void *)__ViewController__viewDidLoad_block_func_0, &__ViewController__viewDidLoad_block_desc_0_DATA, testasdasd, 570425344));
    它要初始化結(jié)構(gòu)體__ViewController__viewDidLoad_block_impl_0粹淋,直接把testasdasd賦值給他的成員變量-cself->testasdasd。所以對(duì)象的內(nèi)存地址沒有變瑟慈,但是在Block內(nèi)部廓啊,指向?qū)ο蟮闹羔樧兞耍驗(yàn)檫@個(gè)指針是結(jié)構(gòu)體新創(chuàng)建的封豪。

    iOS block 面試題(看這篇就夠了)

    此類的例子很多博客都有,只是解釋的都很模糊,看了也還是不明白 第一題: test會(huì)打印什么?因?yàn)樯? 答案是test1111 原因: /*2019-03-07 15:36:0...

  • Block原理分析(2)完結(jié)

    前情提要 基于Block原理分析(1)[http://www.reibang.com/p/afd031effac0],繼續(xù)分析Block中的剩余知識(shí)點(diǎn)谴轮。 1.__block...

  • Block原理分析(1)

    前情提要 1.閉包、Block是一個(gè)帶有自動(dòng)變量值(可以截獲自動(dòng)變量值)的匿名函數(shù)吹埠。截獲的含義是保存該自動(dòng)變量的瞬間值第步。2.OC中如果要改變Block截獲的外部自動(dòng)變量的值疮装,...

  • 120
    iOS13,14 CollectionView(2)Inset Items Grid&Two-Column Grid實(shí)現(xiàn)簡(jiǎn)介

    前情提要 在文章正在審核中... - 簡(jiǎn)書[http://www.reibang.com/p/96a4e264ce55]文章的基礎(chǔ)之上,討論Apple又給出的兩個(gè)簡(jiǎn)單的例子...

  • Swift閉包

    前情提要 Swift的閉包和OC的Block是一回事粘都,是一種特殊的函數(shù)-帶有自動(dòng)變量的匿名函數(shù)廓推。 分別從語(yǔ)法和原理上講解閉包 語(yǔ)法 Swift中,函數(shù)和閉包都是引用類型 無(wú)論...

  • Swift泛型

    前情提要 Swift的泛型側(cè)重于將類型作為一種變量或者占位符來(lái)使用专缠。 為什么要用泛型呢,就是方便淑仆。 比如上一篇文章中的用到的一個(gè)類: 類定義: open class UICo...

  • 120
    iOS13,14 CollectionView(1)Grid實(shí)現(xiàn)簡(jiǎn)介

    前情提要 iOS13對(duì)CollectionView進(jìn)行了大的更新之后涝婉,一個(gè)CollectionView幾乎可以應(yīng)對(duì)開發(fā)中90%的UI需求。 開發(fā)過程中蔗怠,我們不再需要思考"怎么...

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