• [Objective-c 基础


    A.概念

    1.block类似函数
    (1)可以保存代码
    (2)有返回值
    (3)有形参 
    2.block的标志:^
    复制代码
     1     // 没有参数和返回值的block
     2     void (^myblock)() = ^{ // 没有形参,可以省略()
     3         NSLog(@"这是新定义的block");
     4     };
     5    
     6     myblock();
     7  
     8     // 带参数和返回值的block
     9     int (^sum)(int a, int b) = ^(int a, int b){
    10         return a + b;
    11     };
    12    
    13     int c = sum(10, 11);
    14     NSLog(@"%d", c);
    复制代码
     
    3.可以访问代码块外的数据
    1     int a = 10;
    2     void (^block)();
    3     block = ^{
    4         NSLog(@"a = %d", a);
    5     };
    6     block();
    out:
    2014-11-15 09:25:34.766 04-block[1355:303] a = 10
     
    4.不能修改代码块外的局部变量
    复制代码
    1     int a = 10;
    2     void (^block)();
    3     block = ^{
    4         a = 20; // 默认情况下, block内部不能修改外面的局部变量
    5         NSLog(@"a = %d", a);
    6     };
    7     block();
    复制代码
     
    解决:给局部变量加上”__block”(双下划线开头)关键字
    复制代码
    1     __block int a = 10;
    2     void (^block)();
    3     block = ^{
    4         a = 20; // error
    5         NSLog(@"a = %d", a);
    6     };
    7     block();
    复制代码
    out:
    2014-11-15 09:28:52.814 04-block[1376:303] a = 20
     
    5.使用typedef
    复制代码
     1 typedef int (^MyBlock) (int, int);
     2  
     3     MyBlock sumBlock;
     4     sumBlock = ^(int a, int b){
     5         return a + b;
     6     };
     7    
     8     MyBlock minusBlock;
     9     minusBlock = ^(int a, int b){
    10         return a - b;
    11     };
    复制代码
    如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
  • 相关阅读:
    vue-router总结2
    vue-router总结
    react中的路由模块化
    react路由嵌套
    Javascript设计模式之我见:迭代器模式
    Javascript设计模式之我见:观察者模式
    【C语言】格式符
    【编译原理】代码在编译器中的完整处理过程
    【数据库】增删改查操作
    测试
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4502906.html
Copyright © 2020-2023  润新知