BLOCK小练习

TestBlock.h
typedef int(^SumBlock)(int num1, int num2);
#import <Foundation/Foundation.h>
@interface Testblock : NSObject
@property (nonatomic,copy) SumBlock sumblock;
-(void)beginSum:(SumBlock)sumb;
-(void)callSum;
@end
@implementation Testblock
static Testblock *myblock = nil;
+ (instancetype)allocWithZone:(struct _NSZone *)zone//单例练习可以忽略
{
    @synchronized(self)
    {
        
        if (myblock == nil)
            
        {
            myblock = [super allocWithZone:zone];
            
            return myblock;
        }
        
        
    }
    
    return myblock;
    
}
-(void)callSum
{
    if (_sumblock)
    {
        
        int c = _sumblock(6,8);
        NSLog(@"%d",c);
    }
}
-(void)beginSum:(SumBlock)sumb
{
    _sumblock = sumb;
    //保存block的实现,在ViewController里面实现了这个block的方法之后,回传block到这里。之后callsum调用_sumblock便能够打印出求和的值,
    //整个过程相当于将6和8传给了ViewController,viewc再把实现方法传回到这里。
}
@end
- (void)viewDidLoad {
    [super viewDidLoad];
    
    Testblock *tblock = [[Testblock alloc ]init];
    Testblock *tblock1 = [[Testblock alloc ]init];
    NSLog(@"%p",tblock);
    NSLog(@"%p",tblock1);//单例写的是否正确,可以忽略
    [tblock beginSum:^int(int num1, int num2) {
        return num1 + num2;//实现block的方法        
    }];
    [tblock callSum];
}
时间: 2024-10-25 04:40:45

BLOCK小练习的相关文章

文件系统inode与block

ls -lhi: -i:inode索引节点编号,它是文件或目录,在磁盘里的唯一标识,Linux读取文件或者目录首先要读取到这个索引节点. 查看根分区inode大小:(inode大点可以存放更多的属性) [[email protected] ~]# dumpe2fs /dev/sda3|grep -i "Inode size" dumpe2fs 1.41.12 (17-May-2010) Inode size:               256 [[email protected] ~

iNode与Block

1. inode和block ---------------------------------    先介绍一下硬盘的整体结构.硬盘中包含多个硬盘盘片,硬盘盘片为圆形,每个硬盘盘片都有一个可以读写的磁头(Head),将这个磁头固定,使硬盘盘片旋转一周,所走轨迹就是磁道(Track).硬盘内所有盘片的相同磁道号的集合成为磁柱(Cylinder).每一磁道被划分成许多区域,每个区域叫一个扇区(Sector).扇区是硬盘的最小存储物理量,一个扇区的存储容量大约是512字节(约0.5K). 知道了硬盘

linux有关Block的知识

1)磁盘读取数据是按Block为单位读取的. 2)一个文件可能占用多个block.每读取一个block就会消耗一次磁盘I/O. 3)如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多. 4)一个block只能存放一个文件的内容,无论内容有多少.如果block是4K,那存放1K的文件,剩余3K就浪费了. 5)Block并非越大越好.Block太大对于小文件存放就会浪费磁盘空间,例如:1000K的文件,Block为4K,占用250个Block,Block为1K,占1000个Block.访问

磁盘操作- inode/Block深入实战

一 思路: 1,磁盘物理结构及大小计算 2,分区 MBR GPT知识 3,fdisk分区 挂载 自动挂载 4,格式化文件系统 5,inode block 软硬链接 查看磁盘: [[email protected] dev]# ls sda sda sda1 sda2 sda3 二 MBR分区机制 512 446 66 ----- 64 分区模式 不能对已挂载的磁盘,进行操作. 只能读写数据. 如果想重新更改文件系统,--先卸载—然后修改fs 三 mount umount 四 inode bloc

linux_inode和block

linux里一切皆文件 什么是文件属性? 文件本身带有的信息, 包括:索引节点编号. 文件类型以及权限.硬链接个数(备份作用).所有者.所属组.文件大小.修改月.修改日.时分 151387 -rw-------. 1 root root 1.2K Nov 7 21:57 anaconda-ks.cfg  索引节点编号,相当于人的身份证,全国唯一,linux系统中唯一,系统读取文件时,首先通过文件名找到节点编号,然后才能读取到文件内容 ll -hi # 查看当前目录下文件信息 在linux中,文件

linux文件属性描述(inode,block)

1.ls   -lhi 文字解释: 第一列:inode索引节点编号(人的身份证,全国唯一) 系统读取文件时首先通过文件名找到inode,然后才能读取到文件内容. 第二列:文件类型及权限(共10个字符,第一个字符为类型,后9个字符为文件权限) 第三列:硬链接个数(详细参看In命令的讲解) 第四列:文件或目录所属的用户(属主) linux里面文件和程序的存在必须要有用户和组满足相应的存在需求. 第五列:文件或目录所属的组 第六列:文件或目录的大小 第七八九列:文件或目录的修改时间:默认月日时分 第十

Block小结

磁盘读取数据是按block为单位读取的. 一个文件可能占用多个block:但是每读取一个block就会消耗一次磁盘I/O. 如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多读 一个block只能存放一个文件的内容,无论内容有多小:如果block默认是4K大小,那么存放一个1K的文件,剩余3K就不能存放别的文件,只能浪费了. block并非越大越好,block太大对于存放小文件就会浪费磁盘空间,例如:1000K的文件,block为4K,占用250个block,如果消耗block为1K,

Hadoop之——MapReduce实战(一)

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/45956487 MapReduce概述      MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单. 这两个函数的形参是key.value对,表示函数的输入信息. MR执行流程 MapReduce原理 执行

《GCD 实现同步锁》-07-多线程

@MicroCai 2015-03-03 23:18 字数 6539 阅读 202 Effective Objective-C Notes:GCD 实现同步锁 Archives iOS <Effective Objective-C Notes>系列博文整理自<Effective Objective-C 2.0> 如果您觉得我的博客对您有帮助,请通过关注我的新浪微博  MicroCai 支持我,谢谢! 本文名为<GCD 实现同步锁>,内容不止于锁.文章试图通过 GCD 同