////      代码块  类似  函数指针。

//        

//        void (^Myblock)();//代码块的声明  。

////        实现

//        Myblock=^()

//        {

//            NSLog(@"test bloock");

//        };

////        调用

//        Myblock();

        

//        例

//        void (^Myblockadd)(int x,int y);

//        Myblockadd=^(int x,int y)

//        {

//            NSLog(@"%d",x+y);

//            

//        };

//        

//        Myblockadd(100,210);

        

//        声明

               int (^Myblockadd)(int x,int y);

        

//        实现

                Myblockadd=^(int x,int y)

                {

                    return x+y;

        

                };

//               调用

             int result= Myblockadd(100,210);

        NSLog(@"%d",result);

        

        

        

//        调用

        

//        int result1=Myfun(block);

 

 

    return 0;

}

//int Myfun(int(^Testblock)(int a,int b)){

//    

//    return Testblock(10,20);

}

 

单例

#import "Singleton.h"

 

@implementation Singleton

 

static Singleton*singleton;

+(Singleton *)shareinstance

{

    if (singleton==nil) {

        singleton=[[Singleton alloc]init];

        

    }

    return singleton;

}

 

+(instancetype)allocWithZone:(struct _NSZone *)zone

{

    if (singleton==nil) {

        singleton=[[super allocWithZone:zone]init];

        

    }

    return singleton;

}

 

-(id)copyWithZone:(NSZone *)zone

{

    return self;

}

@end

 

 

 

//        单例

        

        Singleton *sin=[[Singleton alloc]init];

        Singleton *sin1=[Singleton new];

        Singleton *sin2=[Singleton shareinstance];

        NSLog(@"%p",sin);

        NSLog(@"%p",sin1);

        NSLog(@"%p",sin2);

        NSString *str=@"hfahfka";

//        string->data

        NSLog(@"%@",[str dataUsingEncoding:NSUTF8StringEncoding]);

        NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

//        data->string

        NSString *str1 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

        NSLog(@"%@",str1);

 

    

        

    }

    return 0;

}