将来跳槽用

OC基础学习12:代码块(Block)

2017-09-12  本文已影响67人  Andy_Ron

代码块(Block)/闭包(closure) 是对C语言中函数的扩展。
代码块两种类的绑定:
自动绑定(automatic binding) 栈内存
托管绑定(managed binding) 堆内存

        NSArray *array = [NSArray arrayWithObjects:@"Amir", @"Mishal", @"Irrum", @"Adam", nil];
        NSLog(@"Unsorted Array %@", array);
        NSArray *sorteArray = [array sortedArrayUsingComparator:^(NSString *objet1, NSString *object2) {
            return [objet1 compare:object2];
        }];
        NSLog(@"Sorted Array %@", sorteArray);
        typedef double (^MKSampleMultiply2BlockRef)(double c, double d);
        MKSampleMultiply2BlockRef multiply2 = ^(double c, double d) { return c * d; };
        printf("%f, %f", multiply2(4, 5), multiply2(5,3));
        typedef void (^MKSampleVoidBlockRef)(void);
        typedef void (^MKSampleStringBlockRef)(NSString *);

关于Block详细可查看Apple 的官方文档 Blocks Programming Topics

上一篇 下一篇

猜你喜欢

热点阅读