BTHelp 0.5.19

BTHelp 0.5.19

BTLoading维护。



BTHelp 0.5.19

  • StoneMover

BTHelp

开发中常用的一些工具类,旨在使用特定的工具类快速完成特定的功能。

使用方法

pod install 'BTHelp'

BTModel

自动解析JSON的model,继承自该类并添加对象的json属性即可

TestModel.h

#import "BTModel.h"

@class TestChildModel;

NS_ASSUME_NONNULL_BEGIN

@interface TestModel : BTModel

@property (nonatomic, strong) NSString * title;

@property (nonatomic, strong) TestChildModel * child;

@property (nonatomic, strong) NSMutableArray * childs;

@end



@interface TestChildModel : BTModel

@property (nonatomic, strong) NSString * content;

@end

NS_ASSUME_NONNULL_END

TestModel.m

#import "TestModel.h"

@implementation TestModel

- (void)initSelf{
    [super initSelf];
     self.classDict = @{@"child":TestChildModel.class,@"childs":TestChildModel.class};
}

@end


@implementation TestChildModel



@end

解析

NSDictionary * dict = @{@"title":@"三国演义",@"child":@{@"content":@"东汉末年"},@"childs":@[@{@"content":@"分三国"},@{@"content":@"烽火连天不休"}]};
TestModel * model = [TestModel modelWithDict:dict];
NSLog(@"下个断点看有没有解析成功");

如果是字典数组则调用此方法返回数组的model

+(NSMutableArray*)modelWithArray:(NSArray*)array;

同样支持将model转为字典数据

-(NSDictionary*)autoDataToDictionary;

BTTimerHelp

基于NSTimer封装的计时器,如果您需要精确的计时器功能,请使用gcd,该类会提供快捷的启动、暂停、结束和重设计时器回调间隔功能

self.timer = [[BTTimerHelp alloc]init];
self.timer.changeTime = 1;
//每隔一秒回调一次
self.timer.block = ^{
               
};
[self.timer start];

暂停

[self.timer pause];

如果您需要更改特定时刻的计时间隔

self.timer.changeTime = 3;
[self.timer start];

使用完毕后请记得销毁

[self.timer stop];

帮图标帮助

快速选择头像辅助类,相册、相机权限请在info.plist中添加,权限问题也会在内部自动判断处理

初始化使用

self.iconHelp = [[BTIconHelp alloc] init:self];
self.iconHelp.block = ^(UIImage *image) {
                    
};
[self.iconHelp go];

帮键盘帮助

viewDidAppear中进行初始化,此时布局已完成,可以避免一些坐标计算错误的问题,在初始化之前必须确保界面已经完成布局

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    if (self.help == nil) {
        self.help = [[BTKeyboardHelp alloc] initWithShowView:self.textField moveView:self.displayView margin:0];
        [self.textField becomeFirstResponder];
    }
    
}

vc的显示、隐藏生命周期方法中进行暂停、恢复,防止进入其他页面后使用键盘弹出后造成的影响

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    self.help.isPause = YES;
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    self.help.isPause = NO;
}

帮权限

权限获取工具类,注意首先要是在info.plist中添加对应的权限使用描述文字

[[BTPermission share] getMicPermission:@"当前暂无麦克风权限,请打开后重试" success:^{
                
}];

[[BTPermission share] getAlbumPermission:^{
                
}];

帮苹果支付

使用方式见PayViewController,目前仅支持消耗类项目的购买,不支持恢复购买、订阅

NSDate+BTDate.h

提供更便捷的NSDate对象使用方式

初始化,根据时区获取对应的日期,避免中国时区少8小时的问题

+ (instancetype)initLocalDate;

NSDateFormatter初始化方式

//传入2010-01-01 这个字符串获取date
+ (NSDate*)dateYMD:(NSString*)dateStr;

//传入2010-01-01 13:04:34 这个字符串获取date
+ (NSDate*)dateYMDHMS:(NSString*)dateStr;

//传入2010-01-01 13:04 这个字符串获取date
+ (NSDate*)dateYMDHM:(NSString*)dateStr;

//传入日期,以及格式化样式获取date
+ (NSDate*)dateFromStr:(NSString*)dateStr formatter:(NSString*)formatterStr;

获取格式化字符串

- (NSString*)dateStr:(NSString*)formater;

其他快捷使用方法见类中注释

帮工具

工具类,集合常用方法,见注释

BTDownloadMananger

下载工具类,基于NSURLSessionDownload,在主动调用停止下载的情况下可以实现断点续传。无法实现断点续传情况:断网、杀掉应用

加入下载,如果当前下载数量过多会等待下载

[[BTDownloadMananger share] downLoad:@"下载地址"];

加入回调监听

[[BTDownloadMananger share] addDelegate:self];

实现BTDownloadDelegate监听下载回调

- (void)downloadStateChange:(BTDownloadModel *)model;

- (void)downloadProgressChange:(BTDownloadModel *)model;

- (void)downloadError:(BTDownloadModel *)model error:(NSError*)error;

不用的时候移除监听

[[BTDownloadMananger share] removeDelegate:self];

取消下载

[[BTDownloadMananger share] cancel:@"下载地址"];

是否正在下载

[[BTDownloadMananger share] isDownloading:@"下载地址"];

BTLocation

定位工具类,待完善。