
block
bravegogo
知行合一,积学养气
展开
-
谈Objective-C Block的实现
转自唐巧的博客前言这里有关于block的5道测试题,建议你阅读本文之前先做一下测试。 先介绍一下什么是闭包。在wikipedia上,闭包的定义)是: In programming languages, a closure is a function or reference to a function together with a referenc转载 2016-03-02 14:29:12 · 380 阅读 · 0 评论 -
NSMutableArray 与 block
如果局部变量是数组或者指针的时候只复制这个指针,两个指针指向同一个地址,block只修改指针上的内容。如:NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"a",@"b",@"abc",nil]; NSMutableArray *mArrayCount = [NSMutableArray arr原创 2016-03-03 23:05:05 · 2770 阅读 · 0 评论 -
oc block 测试
http://blog.parse.com/learn/engineering/objective-c-blocks-quiz/转载 2016-03-13 21:39:18 · 453 阅读 · 0 评论 -
黑幕背后的__block修饰符
我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。__block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。为什么不使用__block就不能在Block内部修改外部的局部变量?我们把以下代码通过 clang -rew转载 2016-02-20 15:33:34 · 498 阅读 · 0 评论 -
block为什么用copy
block为什么用copy? (1)block- (void)viewDidLoad { [super viewDidLoad]; __block int a=10; NSLog(@"a=%d",a); void (^blockName)()=^{ a=20; };转载 2016-04-11 23:26:25 · 825 阅读 · 0 评论 -
ARC和非ARC下使用Block属性的问题
1. Block的声明和线程安全Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC下返回Block)。另一个需要注意的问题是关于线程安全,在声明Block属性时需要确认“在调用Block时另一个线程有没有可能去修改Block?”这个问题,如果确定不会有这种情况发生的转载 2016-04-12 10:44:43 · 334 阅读 · 0 评论 -
谈Objective-C Block的实现
转自唐巧的博客前言这里有关于block的5道测试题,建议你阅读本文之前先做一下测试。 先介绍一下什么是闭包。在wikipedia上,闭包的定义)是: In programming languages, a closure is a function or reference to a function together with a referenc转载 2016-02-20 15:31:39 · 409 阅读 · 0 评论 -
block 定义
1.声明和定义在一起int (^ block1) (int ,int )= ^(int a, int b){ retrun a+b;}2.声明和定义分开int (^ block1) (int ,int );block1 = ^(int a, int b){ retrun a+b;}3.调用int m原创 2016-04-09 13:26:04 · 309 阅读 · 0 评论