更新日志

0.3.3

更新日期:2018-06-08

日期的创建

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 创建一个NSDateFormatter
NSDateFormatter *fm1 = NSDateFormatter.sharedFormatter(@"yyyy-MM-dd HH:mm:ss");
NSDateFormatter *fm2 = NSDateFormatter.formatter(@"yyyy-MM-dd HH:mm:ss");
NSDateFormatter *fm3 = NSDateFormatter.utcFormatter(@"yyyy-MM-dd HH:mm:ss");

// 生成Date
NSDate *date1 = fm1.date(@"2018-06-06 20:30:00");
// 日期字符串
NSString *str1 = date1.stringValue(@"HH:mm:ss");
NSString *str2 = fm2.stringValue(date1);

// 也可以连接起来写
NSString *str3 = NSDateFormatter.utcFormatter(@"yyyy-MM-dd HH:mm:ss").date(@"2018-06-06 20:30:00").stringValue(@"HH:mm:ss");

// 日期的加减示例:
NSDate *date2 = date1.addDays(1).addMinutes(-100).addWeeks(2);

NSDate

1
2
3
4
5
6
7
8
9
/**
根据日期字符串和格式生成日期
*/
+ (nullable NSDate *(^)(NSString *str, NSString *format))dateWithStringAndFormat;

/**
根据UTC日期字符串和格式生成日期
*/
+ (nullable NSDate *(^)(NSString *str, NSString *format))dateWithUTCStringAndFormat;

NSDateFormatter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
local formatter
*/
+ (nullable NSDateFormatter *(^)(NSString *dateFormat))formatter;
/**
local formatter
*/
+ (nullable NSDateFormatter *(^)(NSString *dateFormat))localFormatter;
/**
UTC formatter
*/
+ (nullable NSDateFormatter *(^)(NSString *dateFormat))utcFormatter;

/**
formatter with timezone
*/
+ (nullable NSDateFormatter *(^)(NSString *dateFormat, NSTimeZone *timeZone))formatterWithTimeZone;


/**
shared instance
*/
+ (nullable NSDateFormatter *(^)(NSString *dateFormat))sharedFormatter;

/**
date
*/
- (nullable NSDate *(^)(NSString *dateString))date;

/**
string
*/
- (nullable NSString *(^)(NSDate *date))stringValue;

NSUserDefaults增加Swift风格的接口

OC:

1
2
3
4
5
6
7
NSString *key = @"key";
NSString *obj = @"obj";

NSUserDefaults.standard.setObjectForKey(obj, key);
NSUserDefaults.standard.objectForKey(key);
NSUserDefaults.standard.removeObjectForKey(key);
NSUserDefaults.standard.removePersistentDomainForName(key);

Swift:

1
2
3
4
5
6
7
let key = "key"
let obj = "obj"

UserDefaults.standard.set(obj, forKey: key)
UserDefaults.standard.object(forKey: value)
UserDefaults.standard.removeObject(forKey: key)
UserDefaults.standard.removePersistentDomain(forName: key)

增加了若干初始化接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 如一些初始化方法:
UIColor *color = UIColor.initWithHEX(@"#DCDCDC");
UIColor *color2 = UIColor.initWithRGB(82,161,248);
UIImage *img = UIImage.named(@"icon_home");
UIImageView *imgv = UIImageView.initWithImageName(@"icon_home");
UIView *view = UIView.initWithXibName(@"View");// View.xib
UIImage *img2 = UIImage.initWithView(view); // view生成image
UIViewController *vc = UIViewController.initWithClassName(@"MeVC");
// 获取图片指定坐标的颜色
UIColor *color3 = imgv.colorInPoint(CGPointMake(10,10));
// push
self.navigationController.pushViewControllerNamed(@"DetailVC");
self.navigationController.pushViewController(vc);

// 创建一个高度为0.01,宽度为屏幕宽度的view
UIView *v = UIView.initWithHeight(0.01);
// 创建一个尺寸为{100,100}的view
UIView *v2 = UIView.initWithSize(CGSizeMake(100,100));

增加:

1
2
3
4
5
6
7
8
9
10
11
// 定时器
NSTimer *timer;
timer.pause();// 暂停
timer.restart();// 重启,恢复了之后时间是重新开始计时的,所以叫重启更恰当
timer.turnover();// 从暂停变成恢复、或从运行变为暂停

// safari
NSURL *url = [NSURL URLWithString:@"https://xaoxuu.com"];
UIViewController *vc2 = UIViewController.new;
vc2.openSafari(url);
UIApplication.openSafari(url);

0.3.2

更新日期:2018-06-06

增加更多Dictionary解析方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
解析dictionary中的dictionary,返回值可能为空
*/
- (nullable NSDictionary *(^)(NSString *key))dictionaryValue;

/**
解析dictionary中的array,返回值可能为空
*/
- (nullable NSArray *(^)(NSString *key))arrayValue;

/**
解析dictionary中的string,返回值可能为空
*/
- (nullable NSString *(^)(NSString *key))stringValue;

/**
解析dictionary中的string,如果值为空,返回空字符串:@""
*/
- (NSString *(^)(NSString *key, NSString *defaultValue))safeStringValue;

/**
解析dictionary中的number,返回值可能为空
*/
- (nullable NSNumber *(^)(NSString *key))numberValue;

/**
解析dictionary中的number,如果值为空,返回:@0
*/
- (NSNumber *(^)(NSString *key, NSNumber *defaultValue))safeNumberValue;

数据类型判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
安全的字典,如果传入obj不是字典,则返回def

@param obj 传入对象
@param def 默认值
@return 字典或默认值
*/
FOUNDATION_EXTERN NSDictionary *safeDictionary(id obj, NSDictionary *def);

/**
自动转换的字典,如果传入值不是字典,但是能够转换成字典,返回转换后的字典

@param obj 传入对象
@param def 默认值
@return 字典或默认值
*/
FOUNDATION_EXTERN NSDictionary *autoDictionary(id obj, NSDictionary *def);

/**
安全的数组,如果传入obj不是数组,则返回def

@param obj 传入对象
@param def 默认值
@return 数组或默认值
*/
FOUNDATION_EXTERN NSArray *safeArray(id obj, NSArray *def);
/**
自动转换的数组,如果传入obj不是数组,但是能够转换成数组,则返回转换后的数组

@param obj 传入对象
@param def 默认值
@return 数组或默认值
*/
FOUNDATION_EXTERN NSArray *autoArray(id obj, NSArray *def);

/**
安全的字符串,如果传入obj不是字符串,则返回def

@param obj 传入对象
@param def 默认值
@return 字符串或默认值
*/
FOUNDATION_EXTERN NSString *safeString(id obj, NSString *def);
/**
安全的字符串,如果传入obj不是字符串,但是能够转换成字符串,则返回转换后的字符串

@param obj 传入对象
@param def 默认值
@return 字符串或默认值
*/
FOUNDATION_EXTERN NSString *autoString(id obj, NSString *def);

/**
安全的数字,如果传入obj不是数字,则返回def

@param obj 传入对象
@param def 默认值
@return 数字或默认值
*/
FOUNDATION_EXTERN NSNumber *safeNumber(id obj, NSNumber *def);
/**
安全的数字,如果传入obj不是数字,但是能够转换成数字,则返回转换后的数字

@param obj 传入对象
@param def 默认值
@return 数字或默认值
*/
FOUNDATION_EXTERN NSNumber *autoNumber(id obj, NSNumber *def);

AXResult增加data与json互转接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
NSDictionary *dict1 = @{@"a":@"haha", @"b":@2, @"c":@[@"cc",@23]};
NSString *jsonStr = dict1.jsonValue.stringValue;
NSData *jsonData = dict1.jsonValue.dataValue;

NSData *data2 = @"abc.json".docPath.readData();
NSDictionary *dict2 = data2.jsonValue.dictionaryValue;
NSArray *arr2 = data2.jsonValue.arrayValue;
NSString *str2 = data2.jsonValue.stringValue;
// 也可以在转换的过程中监听错误信息
NSDictionary *dict22 = [data2.jsonValue error:^(NSError * _Nullable error) {
AXLogFailure(@"data2转json失败");
}].dictionaryValue;
// 也可以嵌套监听
[[[data2.jsonValue arrayValue:^(NSArray * _Nonnull arrayValue) {
AXLogSuccess(@"data2是一个array");
}] dictionaryValue:^(NSDictionary * _Nonnull dictionaryValue) {
AXLogSuccess(@"data2是一个dictionary");
}] error:^(NSError * _Nullable error) {
AXLogFailure(@"data2转json失败");
}];

接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
json对象转data

@param opt options
@param callback 回调
@return 结果
*/
+ (AXResult *)resultWithJsonWritingOptions:(NSJSONWritingOptions)opt object:(id (^)(NSError **error))callback;

/**
data转json对象

@param opt options
@param callback 回调
@return 结果
*/
+ (AXResult *)resultWithJsonReadingOptions:(NSJSONReadingOptions)opt data:(NSData *(^)(NSError **error))callback;

命名

颜色加深和变浅的函数名:

1
2
3
4
5
6
// 旧的
- (UIColor *(^)(CGFloat ratio))darkRatio;
- (UIColor *(^)(CGFloat ratio))lightRatio;
// 新的
- (UIColor *(^)(CGFloat ratio))darken;
- (UIColor *(^)(CGFloat ratio))lighten;

增加获取色相、饱和度、亮度的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
色相

@return 色相
*/
- (CGFloat)hueValue;

/**
饱和度

@return 饱和度
*/
- (CGFloat)saturationValue;

/**
亮度

@return 亮度
*/
- (CGFloat)brightnessValue;

UIView增加移除手势的接口

1
2
3
4
5
6
7
8
9
10
/**
移除一个手势

@param gesture 手势对象
*/
- (void)ax_removeGestureRecognizer:(__kindof UIGestureRecognizer *)gestureRecognizer;
/**
移除所有手势
*/
- (void)ax_removeAllGestureRecognizers;

0.3.1

更新日期:2018-06-01

沙盒文件链式封装的代码重构

引入AXResult概念,操作结果返回值为AXResult,通过AXResult可以知道存取操作是否成功、失败、是否有错误信息、读取数据的结果等信息。

简化ax_dispatch接口

1
2
3
4
// 旧的
FOUNDATION_EXTERN void ax_dispatch_cancel_operation(dispatch_block_t token);
// 新的
FOUNDATION_EXTERN void ax_dispatch_cancel(dispatch_block_t token);

增加更多弹窗封装接口

可以选择从哪个VC弹出

命名修改

1
2
3
4
// 旧的
ax_eachSubview...
// 新的
ax_allSubview...

0.3.0

更新日期:2018-05-29

拆分子模块

将AXDrawerKit、AXFeedbackKit、AXStatusKit、AXTabKit、AXTableKit、AXThemeKit从AXKit中分离出来,单独维护。

日志

获取所有日志的接口,将获取到的日志按时间倒序排列。

0.2.2

更新日期:2018-04-09

AXTableView新增接口

1
2
3
4
5
6
- (AXTableModelType *)model;

/**
重新获取数据源
*/
- (void)reloadDataSource:(void (^)(AXTableModelType *model))completion;

NSObject获取所有子类

1
2
3
4
5
6
/**
获取所有子类

@return 所有子类
*/
+ (NSArray *)ax_allSubclasses;

新增侧滑抽屉视图框架AXDrawerKit

详见API Reference。

0.2.1

更新日期:2018-03-03

动画播放时允许交互

相关代码:

1
2
3
- (void)ax_animatedScaleIn:(CGFloat)scale duration:(NSTimeInterval)duration completion:(void (^)(BOOL finished))completion;
- (void)ax_animatedScale:(CGFloat)scale duration:(NSTimeInterval)duration completion:(void (^)(BOOL finished))completion;
- (void)ax_animatedScaleOut:(CGFloat)scale duration:(NSTimeInterval)duration completion:(void (^)(BOOL finished))completion

打开app内置Safari浏览器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
打开app内置Safari浏览器

@param URL 网址
*/
+ (void)ax_presentSafariViewControllerWithURL:(NSURL *)URL;

/**
打开app内置Safari浏览器

@param URL 网址
@param viewController 从哪个视图控制器,传入nil可从根控制器打开
*/
+ (void)ax_presentSafariViewControllerWithURL:(NSURL *)URL fromViewController:(nullable UIViewController *)viewController;

AXTableModel增加

增加了cmd属性,用于传递一些额外的参数或指令。

修改了AXTableView数据源接口

1
2
3
4
// 旧的
- (void)ax_tableViewDataSource:(void (^)(AXTableModelType *dataSource))dataSource;
// 新的
- (void)ax_tableView:(AXTableViewType *)tableView dataSource:(void (^)(AXTableModelType *dataSource))dataSource;

增加了新的接口,方便更自由地设置模型,自定义或者监控TableView的加载

1
2
- (void)ax_tableView:(AXTableViewType *)tableView willSetModel:(AXTableRowModelType *)model forRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)ax_tableView:(AXTableViewType *)tableView didSetModelForCell:(AXTableViewCellType *)cell atIndexPath:(NSIndexPath *)indexPath;

修改了获取model的接口

1
2
3
4
5
6
7
8
9
10
11
// SectionModel
// 旧的
- (AXTableSectionModelType *)tableViewSectionModelForIndexPath:(NSIndexPath *)indexPath;
// 新的
- (AXTableSectionModelType *)modelForSection:(NSInteger)section;

// RowModel
// 旧的
- (AXTableRowModelType *)tableViewRowModelForIndexPath:(NSIndexPath *)indexPath;
// 新的
- (AXTableRowModelType *)modelForRowAtIndexPath:(NSIndexPath *)indexPath;

0.2.0

更新日期:2018-01-24

优化NSDictionary解析

NSDateFormatter日期解析

日期的计算使用方法如下:

1
2
NSDate *date = [NSDate date];
date = date.addYears(1).addMonths(2).addDays(-7);

0.1.9

更新日期:2018-01-12

AXCachedLog

缓存日志的方法宏由AXLogToCachePath()改为AXCachedLogOBJ(),并提供了AXCachedLogData()AXCachedLogError()接口。
这3个接口本质相同,相当于调用了AXCachedLogWithType(),并且LogTypeString参数对应分别为@"app"@"data"@"error"
当然LogTypeString参数可以是任何字符串,如@"abc",那么日志的文件名为yyyy-MM-dd-abc.logyyyy-MM-dd为写日志的日期。

AXLog类名改为AXCachedLog

由于现在一天可以有多个log文件,所以获取最近几条日志的方法改为获取最近几天的日志

1
2
3
+ (nullable NSArray<NSString *> *)getLatestCachedLogPathWithDateCount:(NSUInteger)count;
// 旧接口
+ (nullable NSArray<NSString *> *)getLatestCachedLogPathWithCount:(NSUInteger)count;

0.1.8

更新日期:2018-01-04

字符串扩展

layer

1
2
3
4
5
6
7
8
/**
自定义阴影

@param opacity 透明度
@param radius 半径
@param offset 偏移
*/
- (void)ax_customShadowWithOpacity:(CGFloat)opacity radius:(CGFloat)radius offset:(CGSize)offset;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
颜色渐变动画

@param color 颜色
@param duration 持续时间
@param repeatDuration 重复时间
*/
- (void)ax_animatedColor:(UIColor *)color duration:(CFTimeInterval)duration repeatDuration:(CFTimeInterval)repeatDuration;
/**
颜色渐变动画

@param color 颜色
@param duration 持续时间
@param repeatCount 重复次数
*/
- (void)ax_animatedColor:(UIColor *)color duration:(CFTimeInterval)duration repeatCount:(float)repeatCount;

/**
清除颜色渐变动画
*/
- (void)ax_removeColorAnimation;

UIViewControllerFromString

UIViewControllerFromString(NSString *name)改为UIViewControllerNamed(NSString *name),与相似的接口UIImageNamed(NSString *name)保持格式一致。

类属性

把一些获取常量的方法换成了类属性,方便在Swift中使用(在OC中调用不受影响)。如:

1
2
3
4
/**
蓝色
*/
@property (class, strong, readonly, nonatomic) UIColor *ax_blue;

旧接口是:

1
2
3
4
/**
蓝色
*/
+ (UIColor *)ax_blue;

0.1.7

更新日期:2017-12-22

0.1.6

更新日期:2017-12-05

更新了docs。

0.1.5

更新日期:2017-12-05

update feedback

0.1.4

更新日期:2017-12-05

FeedbackKit

优化了邮件反馈方法,通过EmailManager单例实现。

0.1.3

更新日期:2017-12-01

StatusKit

优化了通知栏进度显示

增加了显示、隐藏动画

0.1.2

更新日期:2017-11-28

优化

优化了主题字体管理

日志

缓存日志支持按版本分类保存

修复了日志时区问题

0.1.1

更新日期:2017-11-21

FeedbackKit

1
#import <AXKit/FeedbackKit.h>

封装了发送Email的方法

StatusKit

1
#import <AXKit/FeedbackKit.h>

将与状态栏相关的功能提取至StatusKit,如自定义状态栏颜色、通知消息等

ThemeKit

1
#import <AXKit/FeedbackKit.h>

换肤框架,主题色、字体自定义

0.1.0

更新日期:2017-11-18

Log

由每次启动产生一个log文件改为每天产生一个log文件。

NSString

增加了比较版本号的功能

NSDate

增加了日期转8位数的整型值字符串的方法

0.0.23

更新日期:2017-11-13

fix

0.0.22

更新日期:2017-11-13

fix

CALayer

增加了颜色渐变动画的方法

0.0.21

更新日期:2017-11-06

状态栏

增加了获取状态栏、显示状态栏消息的方法

0.0.20

更新日期:2017-10-31

优化了日志保存和读取策略

0.0.19

更新日期:2017-10-26

增加了保存日志到沙盒文件的方法

0.0.18

更新日期:2017-10-25

UIApplication

封装了跳转到设置、蓝牙等的方法

0.0.17

更新日期:2017-10-13

NSArray

封装了获取数组最大值、最小值、平均值、去重的方法

GCD

封装了可取消的延迟函数

NSString

增加了拼接字符串到沙盒文件的方法
规范了部分沙盒文件接口。

0.0.16

更新日期:2017-10-09

增加了确保索引值在数组内的函数

0.0.15

更新日期:2017-09-27

Addition

docs

增加了自动生成文档html页面的sh脚本

项目主页:https://xaoxuu.com/wiki/axkit

0.0.14

更新日期:2017-08-17

DEBUG宏的简单封装

函数很简单,能够提供一点便利,毕竟函数的调用比写宏更加快捷而且不易出错。

声明:

1
2
3
4
5
6
/**
只在debug模式下运行的函数

@param debug debug操作
*/
FOUNDATION_EXTERN void ax_debug_only(void (^debug)());

实现:

1
2
3
4
5
6
7
inline void ax_debug_only(void (^debug)()){
#ifdef DEBUG
if (debug) {
debug();
}
#endif
}

0.0.13

更新日期:2017-08-15

Changes

UIAlertController删除了两个使用频率低的接口

更改这两个接口使其能够返回实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
弹窗(标题+消息+自定义按钮)(如果action为nil,则只有一个确定按钮)
@param title 标题
@param message 消息
@param action 按钮
@return 返回alert对象
*/
+ (instancetype)ax_showAlertWithTitle:(nullable NSString *)title message:(nullable NSString *)message actions:(void (^ __nullable)(UIAlertController *alert))actions;
/**
弹窗(标题+消息+自定义按钮)(如果action为nil,则只有一个确定按钮)
@param title 标题
@param message 消息
@param action 按钮
@return 返回alert对象
*/
+ (instancetype)ax_showActionSheetWithTitle:(nullable NSString *)title message:(nullable NSString *)message actions:(void (^ __nullable)(UIAlertController *alert))actions;

0.0.12

更新日期:2017-07-20

Fixed Bugs

0.0.11

更新日期:2017-06-30

Additions

1
+ (void)ax_removeDefaultPersistentDomain;
1
2
+ (NSString *)ax_appLaunchImagePath;
+ (UIImage *)ax_appLaunchImage;
1
FOUNDATION_EXTERN NSArray *NSClassGetAllSubclasses(Class cls);
1
2
3
4
5
6
7
8
9
// 保存图片
[NSUserDefaults ax_setImage:newImage forKey:@"AVATAR"];

// 读取图片
[NSUserDefaults ax_readImageForKey:@"AVATAR" completion:^(UIImage * _Nonnull image) {
self.avatar.image = image;
} failure:^(NSError * _Nonnull error) {
AXLogOBJ(error);
}];
1
2
3
+ (void)ax_showActionSheetWithTitle:(nullable NSString *)title message:(nullable NSString *)message action:(void (^ __nullable)(UIAlertController *alert))action;

+ (void)ax_showActionSheetWithTitle:(nullable NSString *)title message:(nullable NSString *)message ok:(void (^ __nullable)(UIAlertAction *sender))ok;

Changes

1
2
3
4
5
6
// @xaoxuu: 配置主题色
[[UIColorManager sharedInstance] configDefaultTheme:^(UIThemeColorModel * _Nonnull color) {
color.theme = [UIColor md_amber];
color.accent = [UIColor md_lime];
color.background = [UIColor whiteColor];
}];

0.0.10

更新日期:2017-06-03

Additions

1
UIImage *img = UIImageFromView(self.view);

为view增加了快速获取bounds center的方法:

1
2
3
4
#pragma mark bounds center
@property (nonatomic, readonly, assign) CGPoint boundsCenter;
@property (nonatomic, readonly, assign) CGFloat boundsCenterX;
@property (nonatomic, readonly, assign) CGFloat boundsCenterY;

对比服务器端的版本(remoteVersion)和当前app版本([NSBundle ax_appVersion])

1
2
3
4
5
6
7
8
9
VersionLaterThanVersion(remoteVersion, [NSBundle ax_appVersion], ^(BOOL later) {
if (later) {
// @xaoxuu: 有新版本
} else {
// @xaoxuu: 有新版本
}
}, ^(NSError * _Nonnull error) {
AXLogError(error);
});

Changes

1
2
3
4
5
6
7
想要实现圆角阴影效果可以这样:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
view.backgroundColor = [UIColor yellowColor];
// 圆角半径30,阴影为向下投射的浮起样式
[view.layer ax_cornerRadius:30 shadow:LayerShadowDownFloat];
[self.view addSubview:view];
1
2
3
4
5
6
7
8
9
10
11
NSError *error = [NSError ax_errorWithMaker:^(NSErrorMaker * _Nonnull error) {
error.domain = @"my domain";
error.code = 123;
error.localizedDescription = @"desc123123";
error.localizedFailureReason = @"reason123123";
error.localizedRecoverySuggestion = @"suggestion123123";
[error.localizedRecoveryOptions addObject:@"1. xxx"];
[error.localizedRecoveryOptions addObject:@"2. xxx"];
}];

AXLogError(error);

0.0.9

更新日期:2017-05-29

Additions

1
2
3
4
5
UIActivityIndicatorView *indicator = [UIActivityIndicatorView defaultIndicator];
// @xaoxuu: 显示到self.view中心
indicator.show(self.view);
// @xaoxuu: 隐藏
indicator.hide();
1
2
3
4
5
6
7
// @xaoxuu: 一行代码的消息弹窗
[UIAlertController ax_showAlertWithTitle:@"Hello Alert" message:@"这是用一行代码弹出来的只有一个按钮的窗口" action:nil];

// @xaoxuu: 最常用的【取消】+【确定】弹窗
[UIAlertController ax_showAlertWithTitle:@"Hello Alert" message:@"这是用一个方法弹出来的有两个按钮的窗口" ok:^(UIAlertAction * _Nonnull sender) {
AXLogFormat(@"点击了OK按钮");
}];

0.0.8

更新日期:2017-05-20

Additions

1
2
3
- (nullable NSURL *)absoluteURL;
- (BOOL)isURLString;
- (nullable UIImage *)image;

0.0.7

更新日期:2017-05-08

Additions

0.0.6

更新日期:2017-04-28

Additions

Changes

0.0.5

更新日期:2017-04-25

增加了ax_removeObjectForKey方法。

0.0.4

更新日期:2017-04-14

0.0.3

更新日期:2017-04-13

0.0.2

更新日期:2017-03-17

0.0.1

更新日期:2017-03-17

由原ATKit改名,原仓库已停止维护。
项目官网:https://xaoxuu.com/wiki/axkit




评论

有疑问请前往本项目的【Issue】页面搜索问题,如果没有相关问题,点击【New issue】进行提问。