
ios--iphone开发 Block
我不是黄飞鸿
计算机
展开
-
IOS Block代码块的简单使用
一 代码块的语法 代码块的书写和C语言函数的语法格式有点像,例如下面求和函数分别用C语言和代码块来实现:int add(int a,int b){ return a+b;}int (^add)(int a,int b) = ^(int a,int b){ return a +b转载 2013-10-16 09:07:46 · 877 阅读 · 0 评论 -
Block介绍(一)基础
一、概述Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。 二、热身先看一个比较简单的Block例子:[objc] view plaincopyint multiplier = 7; int (^my转载 2013-10-16 21:02:02 · 955 阅读 · 0 评论 -
Block介绍(二)内存管理与其他特性
[+]一、block放在哪里我们针对不同情况来讨论block的存放位置:1.栈和堆以下情况中的block位于堆中:1234567891011121314151617void foo(){ __blockint i =1转载 2013-10-16 21:10:18 · 819 阅读 · 0 评论 -
block介绍(四)揭开神秘面纱(下)
目录(?)[+]内存管理的真面目 objc层面如何区分不同内存区的blockBlock_private.h中有这样一组值:/* the raw data space for runtime classes for blocks *//* class+meta used for stack, malloc, and collectable转载 2013-10-16 21:19:23 · 838 阅读 · 0 评论 -
block介绍(三)揭开神秘面纱(上)
lock到底是什么我们使用clang的rewrite-objc命令来获取转码后的代码。 1、block的底层实现我们来看看最简单的一个block:图一 这个block仅仅打印栈变量i和j的值,其被clang转码为:图二首先是一个结构体__main_block_impl_0(从图二中的最后一行可以看到,block是一个指向__mai转载 2013-10-16 21:17:47 · 839 阅读 · 0 评论