综合型ObjC开发工具包
包含对系统类的功能扩展和一些常用控件的封装。


特性

沙盒文件

  • 使用链式语法快速存取沙盒文件

.toJson()

  • .toJson()快速将字典、数组与json进行转换以及非空判断

Blocks

  • 构造方法的block支持
  • EventTarget的block支持
  • 给视图添加手势的block支持(Runtime)

Cooldown

  • 代码冷却机制(基于GCD实现)

Date+

  • NSDate的链式封装(日期的格式化和操作)

导入

pod 'AXKit'

示例

沙盒文件与ToJson

保存

NSDictionary *dict = @{@"name": @"Alex"};
@"File.json".docPath.saveJson(dict);

读取和转换

id read = @"File.json".docPath.readJson();
NSDictionary *readDict = NSDictionary.safe(read);
NSArray *readArr = NSArray.safe(read);

转换

NSUserDefaults.setObjectForKey(@23, @"age");
NSUserDefaults.numberForKey(@"age");
NSUserDefaults.setObjectForKey(@"23", @"age");
NSUserDefaults.numberForKey(@"age");
// 以上两种情况都可以正常读取到值,因为内部做了自动转换

Cooldown

// 10秒内即使多次调用也不会重复执行
ax_dispatch_cooldown(0, 10, "cool", dispatch_get_main_queue(), ^{
// do something
}, ^{
NSLog(@"正在冷却,请稍后")
});

Date+

NSDate *date = NSDate.initWithFormat(@"yyyyMMdd", @"20160802");
date = date.addDays(1).addhours(-1).addWeeks(-2).addMinutes(20);
NSString *str = date.stringWithFormat(@"yyyyMMdd");

Blocks

手势

[view ax_addTapGestureHandler:^(UITapGestureRecognizer * sender) {
// 点击事件
}];
[view ax_addPanGesture:nil handler:^(UIPanGestureRecognizer * sender) {
// 拖拽
}];
[view ax_addLongPressGesture:^(UILongPressGestureRecognizer * sender) {
sender.minimumPressDuration = 5;
} handler:^(UILongPressGestureRecognizer * sender) {
// 长按
}];
...

事件

UIButton *button;
[button ax_addTouchUpInsideHandler:^(UIButton * sender) {
// 点击
}];

UISlider *slider;
[slider ax_addEventHandler:^(UISlider * sender) {
// 事件
} forControlEvents:UIControlEventValueChanged];
...

 评论