牛骨文教育服务平台(让学习变的简单)
博文笔记

为什么进入Block块的成员变量要加__block修饰

创建时间:2016-07-14 投稿人: 浏览次数:114

__block UIImage*image1=nil;


因为此时它是一个局部变量,有可能你的block还没有执行完毕,当前的这个image已经被销毁掉了。所以应该加上__block保住它的命

在block块中局部变量使用完毕我们需要手动把他们置为nil。告诉它那个局部变量可以死了



 NSBlockOperation *combine = [NSBlockOperation blockOperationWithBlock:^{
        // 开启新的图形上下文
        UIGraphicsBeginImageContext(CGSizeMake(100, 100));
        
        // 绘制图片
        [image1 drawInRect:CGRectMake(0, 0, 50, 100)];
        image1 = nil;
        
        [image2 drawInRect:CGRectMake(50, 0, 50, 100)];
        image2 = nil;
        
        // 取得上下文中的图片
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        
        // 结束上下文
        UIGraphicsEndImageContext();
        
        // 回到主线程
        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
            self.imageView.image = image;
        }];
    }];

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。