iOS之——Block

神一樣的存在

網(wǎng)上資源

iOS開發(fā)中copy脊阴、retain的定義和區(qū)別

  1. Block 為什么使用copy
  • Block在創(chuàng)建的時候默認分配的內(nèi)存在棧上克滴,而不是在堆上咱旱。使用copy將其拷貝到堆上允坚,防止在創(chuàng)建的作用域之外使用崩潰漫试。
  • Block 創(chuàng)建在棧上,而Block的代碼中可能會用到本地的一些變量诡右,只有將其拷貝到堆上才能使用這些變量安岂。
  1. Block 為什么不適用retain
    retain使用引用計數(shù)增加1,Block的內(nèi)存在棧上帆吻,不是堆上域那,可能隨時被系統(tǒng)回收,導(dǎo)致野指針存在桅锄,程序崩潰琉雳。
  2. 為什么Block中的對象引用計數(shù)需要自動加1
    Block執(zhí)行的是回調(diào),因此Block并不知道其中的對象obj創(chuàng)建后會在什么時候釋放友瘤,為了不再Block使用object之前翠肘,對象已經(jīng)釋放,Block就retain了object一次辫秧,持有這個對象束倍。
  3. Block和函數(shù)的關(guān)系
  4. Block的理解
    Block實際上是:指向結(jié)構(gòu)體的指針
  5. 對于基本數(shù)據(jù)
    //如果需要在block中對num進行修改,需要加上關(guān)鍵字__block
    //(我們也可以用static關(guān)鍵字進行修飾)
    int num1 = 10;
    void(^block1)() = ^{
        NSLog(@"num1 is %d",num1);
    };
    num1 = 20;
    block1();//輸出10
    
    //改進:使用block,使進入到block塊中的變量不被當做常量來使用
    __blockint num2 = 10;
    void(^block2)() = ^{
        NSLog(@"num2 is %d",num2);
    };
    num2 = 20;
    block2();//輸出20
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盟戏,一起剝皮案震驚了整個濱河市绪妹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柿究,老刑警劉巖邮旷,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝇摸,居然都是意外死亡婶肩,警方通過查閱死者的電腦和手機办陷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來律歼,“玉大人民镜,你說我怎么就攤上這事∠栈伲” “怎么了制圈?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畔况。 經(jīng)常有香客問我鲸鹦,道長,這世上最難降的妖魔是什么问窃? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任亥鬓,我火速辦了婚禮完沪,結(jié)果婚禮上域庇,老公的妹妹穿的比我還像新娘。我一直安慰自己覆积,他們只是感情好听皿,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宽档,像睡著了一般尉姨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吗冤,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天又厉,我揣著相機與錄音,去河邊找鬼椎瘟。 笑死覆致,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的肺蔚。 我是一名探鬼主播煌妈,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宣羊!你這毒婦竟也來了璧诵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤仇冯,失蹤者是張志新(化名)和其女友劉穎之宿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苛坚,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡比被,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年坪创,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姐赡。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡莱预,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出项滑,到底是詐尸還是另有隱情依沮,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布枪狂,位于F島的核電站危喉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏州疾。R本人自食惡果不足惜辜限,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望严蓖。 院中可真熱鬧薄嫡,春花似錦、人聲如沸颗胡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毒姨。三九已至哑蔫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弧呐,已是汗流浹背闸迷。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留俘枫,地道東北人腥沽。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像崩哩,于是被迫代替她去往敵國和親巡球。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1 Block機制 (Very Good) Block技巧與底層解析 http://www.reibang.com...
    Kevin_Junbaozi閱讀 4,035評論 3 48
  • Block基礎(chǔ)回顧 1.什么是Block邓嘹? 帶有局部變量的匿名函數(shù)(名字不重要酣栈,知道怎么用就行),差不多就與C語言...
    Bugfix閱讀 6,748評論 5 61
  • 前言 ios4.0系統(tǒng)已開始支持block汹押,在編程過程中矿筝,block被Obj-C看成是對象,它封裝了一段代碼棚贾,這段...
    GitHubPorter閱讀 794評論 2 4
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,125評論 29 470
  • 我很喜歡笑窖维,也很喜歡愛笑的女孩子榆综。一場流星雨之后,很多人記住了她铸史,楚雨蕁(鄭爽)鼻疮。可是琳轿,在訪談節(jié)目的她判沟,卻很不自信...
    沐天晴閱讀 4,396評論 51 131