zoukankan      html  css  js  c++  java
  • iOS开发--Block

    iOS开发--Block

    1.什么是Block,block 的作用

      ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理

    (1)按钮 target-action   一个方法传入按钮

    (2)表格视图    传入指针  self,回调视图控制器中的方法

    (3)block 语句块。解决回调,理解为匿名函数,定义在方法里面

    2.block的基本使用(语法)

    block类型的变量

    void (^block名称)(带参数)----参数可为0,1,2。。。。。

    定义一个Block的变量

    -----

     void(^block)();

    定义block语句块

      block= ^void ()

         {

            NSLog( @"i am block");

         

         };

    block参数和返回值

    block捕获外部变量

    block注意事项

    ----很多时候,为强引用可能做成循环引用,这时可用

    __weak typeof(self) weakSelf = self;

    定义一个弱引用的weakSelf来处理事件。

    3.block在开发中应用(oc,ui,网络)

    1.返回数据

    在第二个页面中,定义Block,并在特定的事件中添加Block。

    @property (copy,nonatomic)   void (^changeCategory)(NSString *categoryId);
    在特定的代码中,加入 
    
     if (self.changeCategory) {
            self.changeCategory(model.categoryId);
        }

    在第一个页面中,执行第二个页面传过来的方法。

    在第一个页面中,进入第二个页面的地方,加入

     [second setChangeCategory:^(NSString *cate) {
            _page =1;
            _catagoryId = cate;
         //通过传递的数据,执行方法
                [self startDownLoadData:_catagoryId];
        }];

    2.常用Block函数的使用

    [UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>];

    第一个参数的时间,第二个参数的执行的动作,比如设置变大

    view.frame= cgrectmake(x,y,w,h);

    动画变换

      view.transform = CGAffineTransformMakeRotation(M_1_PI);

    第三个参数的执行后的动作,可用用nil ,^{},^(BOOL finished){}等来接。 

  • 相关阅读:
    第三篇:python函数
    第二篇:数据类型
    第一篇:初识python
    PyTorch教程之Autograd
    PyTorch教程之Tensors
    如何解决Python.h:No such file or directory
    如何解决conda install:command not found问题
    Linux 安装Anaconda 4.4.0
    Linux安装pytorch的具体过程以及其中出现问题的解决办法
    Writing Science 7.10 (The Opening and The Funnel)
  • 原文地址:https://www.cnblogs.com/jiangmz/p/4397562.html
Copyright © 2011-2022 走看看