码迷,mamicode.com
首页 > 其他好文 > 详细

oc block基本使用

时间:2015-07-21 23:45:34      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

//
//  main.m
//  block基本使用
//
//  Created by Ymmmsick on 15/7/21.
//  Copyright (c) 2015年 Ymmmsick. All rights reserved.
//

#import <Foundation/Foundation.h>
typedef int (^IntBlock)() ;
typedef void (^VoidBlock)();

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"这个哥修改过的模版!");
        
        //没有行参,没有返回值的block
        void (^testBlock)() = ^ {
            NSLog(@"Block---->Test");
            NSLog(@"Block---->Test");
        };
        
        testBlock();
        
        //有行参有返回值的block
        int (^sumBlock)(int,int) = ^(int a,int b){
            return a+b;
        };
        NSLog(@"sum is :%d",sumBlock(10,12));
        
        //typedef
        IntBlock productBlock = ^(int a,int b){
            return a * b;
        };
        NSLog(@"product is :%d",productBlock(10,10));
        
        /*
         Block访问外部变量
         1.block内部可以访问外部的变量
         2.默认情况下,block不能修改外部的变量
         3.外部变量添加__block关键字,block内部就可以修改外部的变量
         */
        
        __block int a = 0;
        VoidBlock areaBlock = ^{
            a = 10;
            NSLog(@"a = %d",a);
        };
        areaBlock();
    }
    return 0;
}

 

oc block基本使用

标签:

原文地址:http://www.cnblogs.com/wubingshenyin/p/4665892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!