Block - block簡(jiǎn)單的使用

參考文檔

一咆课、忘記block格式棕孙?

  • 樣例一.png
  • 樣例二.png

二、Block的定義

1脖律、無(wú)參數(shù)無(wú)返回值
//1浩姥,無(wú)參數(shù),無(wú)返回值状您,聲明和定義
void(^MyBlockOne)(void) = ^(void){
 
NSLog(@"無(wú)參數(shù)勒叠,無(wú)返回值");  
 
};  
MyBlockOne();//block的調(diào)用
2兜挨、有參數(shù)無(wú)返回值
//2,有參數(shù)眯分,無(wú)返回值拌汇,聲明和定義
 
void(^MyblockTwo)(int a) = ^(int a){
 
NSLog(@"@ = %d我就是block,有參數(shù)弊决,無(wú)返回值",a);
 
  };  
MyblockTwo(100);
3噪舀、有參數(shù)有返回值
//3,有參數(shù)飘诗,有返回值
 
int(^MyBlockThree)(int,int) = ^(int a,int b){    
 
  NSLog(@"%d我就是block与倡,有參數(shù),有返回值",a + b);returna + b; 
 
 };  
MyBlockThree(12,56);
4昆稿、無(wú)參數(shù)有返回值(很少用到)
//4纺座,無(wú)參數(shù),有返回值
 
int(^MyblockFour)(void) = ^{NSLog(@"無(wú)參數(shù)溉潭,有返回值");
        return45;
  };
MyblockFour();
5净响、實(shí)際開發(fā)中常用typedef 定義Block

例如,用typedef定義一個(gè)block:

  typedef int (^MyBlock)(int , int);

這時(shí)喳瓣,MyBlock就成為了一種Block類型
在定義類的屬性時(shí)可以這樣:

  @property (nonatomic,copy) MyBlock myBlockOne;

使用時(shí):

self.myBlockOne = ^int (int ,int){
    //TODO
}

三馋贤、block的使用

1、block作為對(duì)象的屬性

第一步:寫一個(gè)簡(jiǎn)單的block

//寫一個(gè)block  inlineblock
void(^LXBlock)() = ^() {
    NSLog(@"aa");
};
//調(diào)用這個(gè)block
LXBlock();

第二步:創(chuàng)建一個(gè)Person對(duì)象類畏陕,并創(chuàng)建一個(gè)屬性block

@interface Person : NSObject

/* block : ARC使用strong  非ARC使用copy  */
@property (nonatomic, strong) void(^block)();

@end

第三步:創(chuàng)建Person對(duì)象配乓,并將block賦值給他的屬性

Person * p = [[Person alloc]init];
p.block = LXBlock;

第四步:調(diào)用這個(gè)Person對(duì)象的屬性

_per.block();

2、block作為方法的參數(shù)

第一步:接著上面的Person.h類中惠毁,聲明創(chuàng)建eat方法

//參數(shù)是一個(gè)block
//block的返回值:void  參數(shù):NSString *  名字:block
-(void)eat:(void(^)(NSString *))block;

第二步:在Person.m中實(shí)現(xiàn)

-(void)eat:(void (^)(NSString *))block {
    block(@"參數(shù)");
}

第三步:調(diào)用

Person * p1 = [[Person alloc]init];
[p1 eat:^(NSString * s) {
    NSLog(@"%@",s);
}];

3犹芹、block作為返回值

第一步:在Person.h中聲明run

-(void(^)(int))run;

第二步:在Person.m中實(shí)現(xiàn)

-(void(^)(int))run{
    return ^(int m) {
        NSLog(@"哥們起來(lái)了!仁讨!== %d",m);
    };
}

第三步:調(diào)用

//3.block作為返回值
Person * p = [[Person alloc]init];  
p.run(10);

整個(gè)Person類以及調(diào)用

Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

/* block : ARC使用strong  非ARC使用copy*/
@property (nonatomic, strong) void(^block)();

-(void)eat:(void(^)(NSString *))block;

-(void(^)(int))run;

@end

Person.m

#import "Person.h"

@implementation Person

-(void)eat:(void (^)(NSString *))block {
    block(@"參數(shù)");
}

-(void(^)(int))run{
    return ^(int m) {
        NSLog(@"哥們起來(lái)了!实昨!== %d",m);
    };
}

@end

調(diào)用

- (void)myblock {
    //寫一個(gè)block  inlineblock
    void(^LXBlock)() = ^() {
        NSLog(@"aaa");
    };

    LXBlock();
    
    //1.block作為對(duì)象的屬性
    Person * p = [[Person alloc]init];
    p.block = LXBlock;
    _per = p;
    
    //測(cè)試
    _per.block();
}

-(void)myblock_2 {
    //2.block作為方法參數(shù)
    Person * p1 = [[Person alloc]init];
    [p1 eat:^(NSString * s) {
        NSLog(@"%@",s);
    }];
}

-(void)myblock_3 {
    //3.block作為返回值
    Person * p = [[Person alloc]init];
    p.run(10);
}

完洞豁!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荒给,隨后出現(xiàn)的幾起案子丈挟,更是在濱河造成了極大的恐慌,老刑警劉巖志电,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曙咽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡挑辆,警方通過(guò)查閱死者的電腦和手機(jī)例朱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門孝情,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人洒嗤,你說(shuō)我怎么就攤上這事箫荡。” “怎么了渔隶?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵羔挡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我间唉,道長(zhǎng)绞灼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任呈野,我火速辦了婚禮低矮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘际跪。我一直安慰自己商佛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布姆打。 她就那樣靜靜地躺著良姆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幔戏。 梳的紋絲不亂的頭發(fā)上玛追,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音闲延,去河邊找鬼痊剖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垒玲,可吹牛的內(nèi)容都是我干的陆馁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼合愈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叮贩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起佛析,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤益老,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后寸莫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捺萌,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年膘茎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桃纯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酷誓。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慈参,靈堂內(nèi)的尸體忽然破棺而出呛牲,到底是詐尸還是另有隱情,我是刑警寧澤驮配,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布娘扩,位于F島的核電站,受9級(jí)特大地震影響壮锻,放射性物質(zhì)發(fā)生泄漏琐旁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一猜绣、第九天 我趴在偏房一處隱蔽的房頂上張望灰殴。 院中可真熱鬧,春花似錦掰邢、人聲如沸牺陶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掰伸。三九已至,卻和暖如春怀估,著一層夾襖步出監(jiān)牢的瞬間狮鸭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工多搀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歧蕉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓康铭,卻偏偏與公主長(zhǎng)得像惯退,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子从藤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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

  • 在編程領(lǐng)域里催跪,一個(gè)牛逼程序員和一個(gè)二逼程序員之間的區(qū)別主要是其對(duì)所用編程語(yǔ)言優(yōu)秀特性的運(yùn)用方式。要說(shuō)到Object...
    Jimmy_L_Wang閱讀 472評(píng)論 0 1
  • 1.什么是Block 帶有局部變量的匿名函數(shù)呛哟,與C語(yǔ)言中的函數(shù)指針類似叠荠,可當(dāng)做參數(shù)進(jìn)行傳值匿沛,且可以沒(méi)有名字扫责。格式如...
    夏天的楓_閱讀 1,477評(píng)論 2 6
  • block的聲明和簡(jiǎn)單使用 蘋果官方文檔聲明,block是objc對(duì)象逃呼。 block的定義方式 無(wú)返回值無(wú)參數(shù)的b...
    eightzg閱讀 6,522評(píng)論 1 4
  • 1 block的基本概念 1.1 block的產(chǎn)生和用途 代碼塊Block是蘋果在iOS4開始引入的對(duì)C語(yǔ)言的擴(kuò)展...
    堂吉訶德灬閱讀 578評(píng)論 0 5
  • iOS學(xué)習(xí)-(1)block的使用和注意 本文簡(jiǎn)介 本文主要介紹1.block的基本使用 ...
    一片楓葉隨風(fēng)舞閱讀 373評(píng)論 0 0