日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

IOS开发 Block的学习

發布時間:2025/3/20 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发 Block的学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  蘋果公司正在大力推廣Block塊語法的使用,據說Block會遲早取代一般協議代理的使用.

  Block最大的作用是函數回調,簡化代碼.

  在ios中,將blocks當成對象來處理,它封裝了一段代碼,這段代碼可以在任何時候執行。Blocks可以作為函數參數或者函數的返回值,而其本身又可以帶輸入參數或返回值。它和傳統的函數指針很類似,但是有區別:blocks是inline的,并且它對局部變量是只讀的。

block官方定義:

?

示例的詳解如下:?

?



?

?

  注意block可以使用其定義范圍內的變量.

?

  如果你把block聲明為一個變量,你可以把它當一個函數(function,本文中特指C語言形式的函數)一樣調用:

?

block定義:

  int?(^myBlock)?(int?a,int?b)?=?^(int?a,int?b){ ? ? ?

?    return?a+b; ??

  ?};

?

   如果要修改就要加關鍵字:__block ? 雙下劃線哦!!!

?

?

  簡單的回調,廢話不多說,直接上代碼!!! ?第二個頁面往第一個頁面回調

  先在第二個頁面定義一個塊,然后寫一個方法使用block;

  #import<UIKit/UIKit.h>

  typedefvoid(^myBlock)(NSString*,NSString*,NSInteger);

  @interfaceSecondViewController:UIViewController

  {

?   ? myBlockblock;

  }

?

  -(void)passValueUsingBlock:(myBlock)block1;

?

  @end

?  .m文件

  #import"SecondViewController.h"

?

  @interfaceSecondViewController()

  -(IBAction)Back:(id)sender;

?

  @end

?

  @implementationSecondViewController

?

?

  -(void)passValueUsingBlock:(myBlock)block1

  {

? ?   block=block1;

  }

?

  -(void)viewDidLoad

  {

?   ? [superviewDidLoad];

  }

?

  -(IBAction)Back:(id)sender{

?   ? block(@"hello",@"女",21);

?   ? [selfdismissViewControllerAnimated:YEScompletion:nil];

  }

  @end

?

?

  在第一個頁面調用這個方法

  

#import"RootViewController.h"

#import"SecondViewController.h"

@interfaceRootViewController()

@property(weak,nonatomic)IBOutletUITextField*name;

@property(weak,nonatomic)IBOutletUITextField*sex;

@property(weak,nonatomic)IBOutletUITextField*age;

-(IBAction)Push:(id)sender;

?

@end

?

@implementationRootViewController

?

-(void)viewDidLoad

{

? ? [superviewDidLoad];

? ? //Doanyadditionalsetupafterloadingtheviewfromitsnib.

}

?

-(IBAction)Push:(id)sender{

? ? SecondViewController*second=[[SecondViewControlleralloc]init];

? ? [secondpassValueUsingBlock:^(NSString*name,NSString*sex,NSIntegerage){

? ? ? ? self.name.text=name;

? ? ? ? self.sex.text=sex;

? ? ? ? self.age.text=[NSStringstringWithFormat:@"%d",age];

? ? }];

? ? [selfpresentViewController:secondanimated:YEScompletion:nil];

}

@end

?

  

?

?

?

?

?

轉載于:https://www.cnblogs.com/moyunmo/p/3371599.html

總結

以上是生活随笔為你收集整理的IOS开发 Block的学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。