zoukankan      html  css  js  c++  java
  • 十二 .ocBlock

    NSProxy是一个不继承NSObject的根类(尽管它遵守NSObject协议),调用[[NSProxy alloc]init]将会产生一个运行异常。

    所幸,oc引入被称为“块代码”的第一级函数的概念。就用途来讲块代码可以替代NSProxy子类的需求。

      块代码是用于匿名函数的oc结构(即内联)。实现在C层次(因此可用在C和C++代码中)。

      块代码最初分配在中。

      ^标识符(又称“块代码操作符”,它是一个在C++中不能被重写的操作符)。

    Block的声明、赋值和调用:

    闭包(lexical closure)

    1.局部不能改变外部变量

    2.__block变量(注意:__block两个下划线)

    *有了__block,局部能改变外部变量

    当外部变量成功被块代码捕获时,如果变量在栈中声明,那么它们仍然位于栈中。一旦有引用它们的块代码被复制到堆中,则这些块变量的存储也会被移到堆中。

  • 相关阅读:
    python sys 模块
    python os 模块
    JS Dictionary
    JS Array
    JS String
    JS面向对象
    WPF中INotifyPropertyChanged用法与数据绑定
    JS的函数
    JS类型转换
    JS变量的作用域
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/5421509.html
Copyright © 2011-2022 走看看