<commit_before># EasyBlock
[![Version](https://img.shields.io/cocoapods/v/EasyBlock.svg?style=flat)](http://cocoapods.org/pods/EasyBlock)
[![Pod License](http://img.shields.io/cocoapods/l/EasyBlock.svg?style=flat)](https://opensource.org/licenses/MIT)
![](https://img.shields.io/badge/language-objc-orange.svg)
![iOS 6.0+](https://img.shields.io/badge/iOS-6.0%2B-blue.svg)

## 功能
1. 将所有的 UIControlEvent 事件改由 Block 处理，无需再写 target-action
2. 将所有的手势事件改由 Block 处理
3. 简易的封装了 GCD 的异步处理各种队列的接口，更简单的使用 GCD 所带来的高效率线程处理
4. 在 EasyGCD 的头文件中，增加了 dispatch_semaphore_t 所设置的锁，可以更简单的处理临界资源的互斥，具有十分优秀的性能，仅次于 OSSpinLock （自旋锁）
5. 处理开发中经常遇到的多个请求回来时再做某些操作的问题，使用一个由 dispatch_semaphore_t 封装的 EasymultipleTaskLock 来处理这种场景

## 最近更新
* 0.1.4


增加可忽略时间，防止按钮或其他事件在一段时间内重复次数太多所造成的BUG


## 使用方式
1. 针对于 UIKit
```
    [self.btnOne addEvent:UIControlEventTouchUpInside handleBlock:^(id instance) {
        NSLog(@"%@被点击了2",instance);
    }];
    
    [self.view addGestureRecognizer:[UITapGestureRecognizer new] handleBlock:^(id instance) {
        NSLog(@"%@",instance);
    }];
```

2. 针对 GCD 的封装api
```
	// 获得一个锁对象，上锁与解锁
	dispatch_semaphore_t lock = easyGetLock();
	easyLock(lock);
	easyUnLock(lock);
   
   // 针对多任务的 easyGetMultipleTaskLock
       dispatch_semaphore_t lock =  easyGetMultipleTaskLock();
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), easyCGDGetConcurrentQueue(NULL), ^{
        NSLog(@"任务一完成");
        easyMultipleTaskUnlock(lock);
    });
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), easyCGDGetConcurrentQueue(NULL), ^{
        NSLog(@"任务二完成");
        easyMultipleTaskUnlock(lock);
    });
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), easyCGDGetConcurrentQueue(NULL), ^{
        NSLog(@"任务三完成");
        easyMultipleTaskUnlock(lock);
    });
    // 第二个参数输入锁的数量
    easyMultipleTaskLockCount(lock, 3, ^{
        NSLog(@"任务全部完成");
    });
```

## 支持Cocoapods
```
pod 'EasyBlock'
```
* 如果你使用 pod search 命令搜不到，请执行下面的命令更新自己的 cocoapods 官方索引库:

```
pod repo update
```

## 联系我<commit_msg>no message<commit_after># EasyBlock
[![Version](https://img.shields.io/cocoapods/v/EasyBlock.svg?style=flat)](http://cocoapods.org/pods/EasyBlock)
[![Pod License](http://img.shields.io/cocoapods/l/EasyBlock.svg?style=flat)](https://opensource.org/licenses/MIT)
![](https://img.shields.io/badge/language-objc-orange.svg)
![iOS 6.0+](https://img.shields.io/badge/iOS-6.0%2B-blue.svg)

## 功能
1. 将所有的 UIControlEvent 事件改由 Block 处理，无需再写 target-action
2. 将所有的手势事件改由 Block 处理
3. 简易的封装了 GCD 的异步处理各种队列的接口，更简单的使用 GCD 所带来的高效率线程处理
4. 在 EasyGCD 的头文件中，增加了 dispatch_semaphore_t 所设置的锁，可以更简单的处理临界资源的互斥，具有十分优秀的性能，仅次于 OSSpinLock （自旋锁）
5. 处理开发中经常遇到的多个请求回来时再做某些操作的问题，使用一个由 dispatch_semaphore_t 封装的 EasymultipleTaskLock 来处理这种场景

## 最近更新
* 0.1.4


增加可忽略时间，防止按钮或其他事件在一段时间内重复次数太多所造成的BUG


## 使用方式
1. 针对于 UIKit
```
    [self.btnOne addEvent:UIControlEventTouchUpInside handleBlock:^(id instance) {
        NSLog(@"%@被点击了2",instance);
    }];
    
    [self.view addGestureRecognizer:[UITapGestureRecognizer new] handleBlock:^(id instance) {
        NSLog(@"%@",instance);
    }];
```

2. 针对 GCD 的封装api
```
// 获得一个锁对象，上锁与解锁
    dispatch_semaphore_t lock = easyGetLock();
    easyLock(lock);
    easyUnLock(lock);
   
// 针对多任务的 easyGetMultipleTaskLock
   dispatch_semaphore_t lock =  easyGetMultipleTaskLock();
   dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), easyCGDGetConcurrentQueue(NULL), ^{
    NSLog(@"任务一完成");
    easyMultipleTaskUnlock(lock);
});
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), easyCGDGetConcurrentQueue(NULL), ^{
    NSLog(@"任务二完成");
    easyMultipleTaskUnlock(lock);
});
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), easyCGDGetConcurrentQueue(NULL), ^{
    NSLog(@"任务三完成");
    easyMultipleTaskUnlock(lock);
});
// 第二个参数输入锁的数量
    easyMultipleTaskLockCount(lock, 3, ^{
    NSLog(@"任务全部完成");
});
```

## 支持Cocoapods
```
pod 'EasyBlock'
```
* 如果你使用 pod search 命令搜不到，请执行下面的命令更新自己的 cocoapods 官方索引库:

```
pod repo update
```

## 联系我
{'fraction_non_alphanumeric': 0.1510808841389361, 'fraction_numerical': 0.014087928102987613, 'mean_word_length': 4.9854651162790695, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '278131', 'n_tokens_mistral': 2051, 'n_tokens_neox': 2102, 'n_words': 216}