Commit 5cb34116def6c5fe9491573044a954b5fcd59755

Authored by yinqiaojuan
1 parent 98bc06be

0.1.0

Showing 61 changed files with 1339 additions and 1620 deletions

Too many changes to show.

To preserve performance only 61 of 197 files are displayed.

CNLiveDisease.podspec
1 1  
2 2 Pod::Spec.new do |s|
3 3 s.name = 'CNLiveDisease'
4   - s.version = '0.0.9'
  4 + s.version = '0.1.0'
5 5 s.summary = '智慧农业部分组件化'
6 6  
7 7 s.description = <<-DESC
... ... @@ -17,7 +17,7 @@ TODO: Add long description of the pod here.
17 17  
18 18 s.ios.deployment_target = '9.0'
19 19  
20   - s.source_files = 'CNLiveDisease/Classes/**/*'
  20 + #s.source_files = 'CNLiveDisease/Classes/**/*'
21 21  
22 22 s.resource_bundles = {
23 23 'CNLiveDisease' => ['CNLiveDisease/Assets/Assets.xcassets']
... ... @@ -25,14 +25,23 @@ TODO: Add long description of the pod here.
25 25  
26 26 # s.public_header_files = 'Pod/Classes/**/*.h'
27 27 s.frameworks = 'UIKit', 'Foundation'
28   - s.dependency 'CNLiveBaseKit'
29   - s.dependency 'Masonry'
30   - s.dependency 'QMUIKit', '~> 3.1.0'
31   - s.dependency 'CNLiveCommonCategory'
32   - s.dependency 'CNLiveImagePickerController'
33   - s.dependency 'CNLiveAVCamera'
34   - # s.dependency 'CNLiveUploadManager'
35   - # s.ios.vendored_library = 'CNLiveUploadManager'
36   - s.dependency 'FLAnimatedImage'
37   - s.dependency 'CNLiveCoreMediator'
  28 + s.subspec 'View' do |view|
  29 + view.dependency 'CNLiveTripartiteManagement/QMUIKit'
  30 + view.dependency 'CNLiveBaseKit'
  31 + view.source_files = 'CNLiveDisease/Classes/View/*.{h,m}'
  32 + end
  33 + s.subspec 'Controller' do |controller|
  34 + controller.dependency 'CNLiveBaseKit'
  35 + controller.dependency 'CNLiveTripartiteManagement/QMUIKit'
  36 + controller.dependency 'CNLiveTripartiteManagement/Masonry'
  37 + controller.dependency 'CNLiveCommonCategory'
  38 + controller.dependency 'CNLiveImagePickerController'
  39 + controller.dependency 'CNLiveTripartiteManagement/FLAnimatedImage'
  40 + controller.dependency 'CNLiveAVCamera'
  41 + controller.dependency 'CNLiveCommonClass'
  42 + controller.dependency 'CNLiveRequestBastKit'
  43 + controller.dependency 'CNLiveDisease/View'
  44 + controller.dependency 'CNLiveCoreMediator_ModuleDiseaseAction'
  45 + controller.source_files = 'CNLiveDisease/Classes/Controller/*.{h,m}'
  46 + end
38 47 end
... ...
CNLiveDisease/Classes/Controller/CNLiveDiseaseController.h
... ... @@ -5,11 +5,10 @@
5 5 // Created by 殷巧娟 on 2019/1/23.
6 6 //
7 7  
8   -#import <UIKit/UIKit.h>
9   -
  8 +#import "CNCommonViewController.h"
10 9 NS_ASSUME_NONNULL_BEGIN
11 10  
12   -@interface CNLiveDiseaseController : UIViewController
  11 +@interface CNLiveDiseaseController : CNCommonViewController
13 12 @end
14 13  
15 14 NS_ASSUME_NONNULL_END
... ...
CNLiveDisease/Classes/Controller/CNLiveDiseaseController.m
... ... @@ -7,36 +7,30 @@
7 7  
8 8 #import "CNLiveDiseaseController.h"
9 9 #import "CNLiveDiseaseSegment.h"
10   -#import <CNLiveCommonCategory/UIColor+CNLiveExtension.h>
11   -#import <CNLiveBaseKit/CNLiveBaseKit.h>
  10 +#import "UIColor+CNLiveExtension.h"
  11 +#import "CNLiveBaseKit.h"
12 12 #import "CNLiveFriutViewController.h"
  13 +#import "UIColor+CNLiveExtension.h"
13 14 #define TotalTitleCount 3
14 15 #define Segment_Height 53
15 16 @interface CNLiveDiseaseController ()<UIScrollViewDelegate,CNLiveDiseaseSegmentDelegate>
16 17 @property (nonatomic, strong) UIScrollView *scrollView;
17 18 @property (nonatomic, strong) CNLiveDiseaseSegment *segmentView;
18   -@property (nonatomic, assign) BOOL isAppReview;
19 19 @end
20 20  
21 21 @implementation CNLiveDiseaseController
22 22  
23 23 - (void)viewDidLoad {
24 24 [super viewDidLoad];
25   - self.view.backgroundColor = [UIColor whiteColor];
  25 + self.title = @"农业智能";
26 26 [self setUpSegment];
27 27 [self.view addSubview:self.scrollView];
28 28 CGFloat width = KScreenWidth;
29 29 CGFloat height = KScreenHeight - kNavigationBarHeight - Segment_Height;
30 30 CNLiveFriutViewController *vc = [[CNLiveFriutViewController alloc]init];
31 31 [vc setIndex:0];
32   - self.isAppReview = YES;
33   - if (self.isAppReview) {
34   - vc.imageArray = [NSArray arrayWithObjects:@"pingguo",@"yingtao",@"putao",@"tao",@"xing",@"caomei",@"yangmei",@"lizhi",@"xigua",@"mugua",@"mangguo",@"hamigua",@"xiangjiao",@"zao",@"mihoutao",@"li", nil];
35   - vc.titleArray = [NSArray arrayWithObjects:@"苹果",@"樱桃",@"葡萄",@"桃子",@"杏子",@"草莓",@"杨梅",@"荔枝",@"西瓜",@"木瓜",@"芒果",@"哈密瓜",@"香蕉",@"枣",@"猕猴桃",@"梨", nil];
36   - }else {
37   - vc.imageArray = [NSArray arrayWithObjects:@"pingguo",@"yingtao",@"putao",@"tao",@"xing",@"zao",@"mihoutao",@"li",nil];
38   - vc.titleArray = [NSArray arrayWithObjects:@"苹果",@"樱桃",@"葡萄",@"桃子",@"杏子",@"枣",@"猕猴桃",@"梨",nil];
39   - }
  32 + vc.imageArray = [NSArray arrayWithObjects:@"pingguo",@"yingtao",@"putao",@"tao",@"xing",@"zao",@"mihoutao",@"li",nil];
  33 + vc.titleArray = [NSArray arrayWithObjects:@"苹果",@"樱桃",@"葡萄",@"桃子",@"杏子",@"枣",@"猕猴桃",@"梨",nil];
40 34 [self addChildViewController:vc];
41 35 vc.view.frame = CGRectMake(0, 0, width, height);
42 36 [self.scrollView addSubview:vc.view];
... ... @@ -55,19 +49,19 @@
55 49 vegetableVc.view.frame = CGRectMake(width *2, 0, width, height);
56 50 [self.scrollView addSubview:vegetableVc.view];
57 51 }
58   -- (void)setUpSegment {
  52 +-(void)setUpSegment {
59 53 self.segmentView = [[CNLiveDiseaseSegment alloc]initWithFrame:CGRectMake(0, kNavigationBarHeight, KScreenWidth, Segment_Height)];
60 54 self.segmentView.delegate = self;
61 55 self.segmentView.dataArr = [NSArray arrayWithObjects:@"水果",@"大田作物",@"食材", nil];
62   - self.segmentView.tagTextColor_normal = [UIColor colorWithHexString:@"#5C5C5C"];
63   - self.segmentView.tagTextColor_selected = [UIColor colorWithHexString:@"#333333"];
  56 + self.segmentView.tagTextColor_normal = CNLiveColorWithHexString(@"5C5C5C");
  57 + self.segmentView.tagTextColor_selected = CNLiveColorWithHexString(@"333333");
64 58 self.segmentView.tagTextFont_normal = 15;
65 59 self.segmentView.tagTextFont_selected = 18;
66   - self.segmentView.sliderColor = [UIColor colorWithHexString:@"#23D41E"];
  60 + self.segmentView.sliderColor = CNLiveColorWithHexString(@"23D41E");
  61 + self.segmentView.sliderW = 60;
67 62 self.segmentView.sliderH = 1;
68 63 [self.view addSubview:self.segmentView];
69 64 }
70   -
71 65 -(UIScrollView *)scrollView {
72 66 if (!_scrollView) {
73 67 _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, kNavigationBarHeight + Segment_Height, KScreenWidth, KScreenHeight - kNavigationBarHeight - Segment_Height)];
... ... @@ -78,8 +72,6 @@
78 72 _scrollView.bounces = NO;
79 73 _scrollView.delegate = self;
80 74 _scrollView.scrollEnabled = YES;
81   - _scrollView.backgroundColor = [UIColor whiteColor];
82   - // _scrollView.backgroundColor = [UIColor cyanColor];
83 75 }
84 76 return _scrollView;
85 77 }
... ... @@ -96,5 +88,4 @@
96 88 [self.segmentView selectingOneTagWithIndex:selectedIndx];
97 89 }
98 90  
99   -
100 91 @end
... ...
CNLiveDisease/Classes/Controller/CNLiveDiseaseDescController.h
... ... @@ -5,11 +5,11 @@
5 5 // Created by 殷巧娟 on 2019/1/25.
6 6 //
7 7  
8   -#import <QMUIKit/QMUIKit.h>
  8 +#import "CNCommonViewController.h"
9 9  
10 10 NS_ASSUME_NONNULL_BEGIN
11 11  
12   -@interface CNLiveDiseaseDescController : QMUICommonViewController
  12 +@interface CNLiveDiseaseDescController : CNCommonViewController
13 13  
14 14 @property (strong, nonatomic) NSDictionary * dataDict;
15 15 @end
... ...
CNLiveDisease/Classes/Controller/CNLiveDiseaseDescController.m
... ... @@ -7,9 +7,10 @@
7 7  
8 8 #import "CNLiveDiseaseDescController.h"
9 9 #import <WebKit/WebKit.h>
10   -#import <FLAnimatedImage/FLAnimatedImageView.h>
11   -#import <CNLiveBaseKit/CNLiveBaseKit.h>
12   -#import <CNLiveCommonCategory/CNLiveCommonCategory.h>
  10 +#import "CNLiveCommonCategory.h"
  11 +#import "CNLiveBaseKit.h"
  12 +#import "FLAnimatedImageView.h"
  13 +#import "QMUIKit.h"
13 14 #define MJWeakSelf __weak typeof(self) weakSelf = self;
14 15 @interface CNLiveDiseaseDescController ()<WKNavigationDelegate,WKUIDelegate>
15 16 {
... ...
CNLiveDisease/Classes/Controller/CNLiveDiseaseFailedController.h
... ... @@ -5,11 +5,11 @@
5 5 // Created by 殷巧娟 on 2019/1/25.
6 6 //
7 7  
8   -#import <QMUIKit/QMUIKit.h>
  8 +#import "CNCommonViewController.h"
9 9  
10 10 NS_ASSUME_NONNULL_BEGIN
11 11  
12   -@interface CNLiveDiseaseFailedController : QMUICommonViewController
  12 +@interface CNLiveDiseaseFailedController : CNCommonViewController
13 13 @property (nonatomic, copy) NSString *name;
14 14 @property (nonatomic, copy) NSString *introduction;
15 15 @end
... ...
CNLiveDisease/Classes/Controller/CNLiveFriutViewController.h
... ... @@ -5,15 +5,15 @@
5 5 // Created by 殷巧娟 on 2019/1/24.
6 6 //
7 7  
8   -#import <QMUIKit/QMUIKit.h>
  8 +#import "CNCommonViewController.h"
9 9  
10 10 NS_ASSUME_NONNULL_BEGIN
11 11  
12   -@interface CNLiveFriutViewController : QMUICommonViewController
  12 +@interface CNLiveFriutViewController : CNCommonViewController
13 13 -(void)setIndex:(NSInteger)index;
14 14 @property (nonatomic, strong) NSArray *imageArray;
15 15 @property (nonatomic, strong) NSArray *titleArray;
16   -@property (nonatomic, assign) BOOL isAppReview; //这个应该从appdelegate那里传过来
  16 +
17 17 @end
18 18  
19 19 NS_ASSUME_NONNULL_END
... ...
CNLiveDisease/Classes/Controller/CNLiveFriutViewController.m
... ... @@ -8,8 +8,8 @@
8 8 #import "CNLiveFriutViewController.h"
9 9 #import "CNDiseaseViewCell.h"
10 10 #import "CNDiseaseType.h"
11   -#import <CNLiveBaseKit/CNLiveBaseKit.h>
12   -#import <QMUIKit/QMUIKit.h>
  11 +#import "CNLiveBaseKit.h"
  12 +#import "QMUIKit.h"
13 13 #import "CNLiveSelectedViewController.h"
14 14 #import "CNLiveGetImage.h"
15 15 static NSString *cellID = @"Cell";
... ... @@ -25,22 +25,12 @@ static NSString *cellID = @&quot;Cell&quot;;
25 25 }
26 26  
27 27 -(void)setIndex:(NSInteger)index {
28   -
29   - self.isAppReview = YES;
30 28 if (index == 0) {
31 29 [self setUpCollectionView];
32 30 }else if (index == 1) {
33   - if (self.isAppReview) {
34   - [self setUpCollectionView];
35   - }else {
36   - [self addEmptyView];
37   - }
  31 + [self addEmptyView];
38 32 }else if (index == 2) {
39   - if (self.isAppReview) {
40   - [self setUpCollectionView];
41   - }else {
42   - [self addEmptyView];
43   - }
  33 + [self addEmptyView];
44 34 }
45 35 }
46 36  
... ... @@ -80,10 +70,10 @@ static NSString *cellID = @&quot;Cell&quot;;
80 70 if (cell ==nil) {
81 71 cell = [[CNDiseaseViewCell alloc]init];
82 72 }
83   -// cell.backgroundColor = [UIColor cyanColor];
84 73 // cell.showImageV.image = [UIImage imageNamed:self.imageArray[indexPath.row]];
85   - cell.showImageV.image = [CNLiveGetImage getImageName:self.imageArray[indexPath.row]];
86   - NSLog(@"打印这个图片%@",self.imageArray);
  74 +// UIImage *image = [CNLiveGetImage cnRefresh_getImageName:self.imageArray[indexPath.row] bundle:@"CNLiveDisease.bundle/CNLiveDisease" targetClass:[self class]];
  75 + UIImage *image = [CNLiveGetImage getImageName:self.imageArray[indexPath.row]];
  76 + cell.showImageV.image = image;
87 77 cell.titleLabel.text = self.titleArray[indexPath.row];
88 78 return cell;
89 79 }
... ... @@ -99,8 +89,8 @@ static NSString *cellID = @&quot;Cell&quot;;
99 89  
100 90 selectVc.titleName = self.titleArray[indexPath.row];
101 91 selectVc.imageName = self.imageArray[indexPath.row];
102   - [self presentViewController:selectVc animated:YES completion:nil];
103   -// [self.navigationController pushViewController:selectVc animated:YES];
  92 +// [self presentViewController:selectVc animated:YES completion:nil];
  93 + [self.navigationController pushViewController:selectVc animated:YES];
104 94 }
105 95  
106 96 -(void)setCNNoDataEmptyView {
... ...
CNLiveDisease/Classes/Controller/CNLiveSelectedViewController.h
... ... @@ -5,11 +5,11 @@
5 5 // Created by 殷巧娟 on 2019/1/24.
6 6 //
7 7  
8   -#import <QMUIKit/QMUIKit.h>
  8 +#import "CNCommonViewController.h"
9 9  
10 10 NS_ASSUME_NONNULL_BEGIN
11 11  
12   -@interface CNLiveSelectedViewController : QMUICommonViewController
  12 +@interface CNLiveSelectedViewController : CNCommonViewController
13 13 @property (nonatomic, copy) NSString *imageName;
14 14 @property (nonatomic, copy) NSString *titleName;
15 15 @end
... ...
CNLiveDisease/Classes/Controller/CNLiveSelectedViewController.m
... ... @@ -8,15 +8,23 @@
8 8 #import "CNLiveSelectedViewController.h"
9 9 #import <AssetsLibrary/AssetsLibrary.h>
10 10 #import <Photos/Photos.h>
11   -#import <CNLiveImagePickerController/TZImagePickerController.h>
  11 +#import "TZImagePickerController.h"
12 12 #import "CNDiseaseType.h"
13   -#import <CNLiveAVCamera/XFCameraController.h>
  13 +#import "XFCameraController.h"
14 14 #import "CNDiseaseType.h"
15   -#import <Masonry/Masonry.h>
16   -#import <CNLiveBaseKit/CNLiveBaseKit.h>
17   -#import <CNLiveImagePickerController/CNImagePickerManager.h>
  15 +#import "Masonry.h"
  16 +#import "CNLiveBaseKit.h"
  17 +#import "CNImagePickerManager.h"
18 18 #import "CNLiveGetImage.h"
19   -#define MJWeakSelf __weak typeof(self) weakSelf = self;
  19 +#import "CNLiveNetworking.h"
  20 +#import "UIImage+zipData.h"
  21 +#import <AFNetworking/AFNetworking.h>
  22 +#import "CNLiveDiseaseFailedController.h"
  23 +#import "CNLiveDiseaseDescController.h"
  24 +#import "UIView+CNAlertView.h"
  25 +#import <QMUIKit/QMUIKit.h>
  26 +#define MJWeakSelf __weak typeof(self) weakSelf = self
  27 +#define kFriendsCircle_limit_photo 20*1024.0*1024.0 //朋友圈限制图片20M
20 28 @interface CNLiveSelectedViewController () <TZImagePickerControllerDelegate>
21 29 @property (nonatomic, strong) UIImageView *selectImageV;
22 30 @property (nonatomic, strong) UIButton *photoBtn;
... ... @@ -29,7 +37,8 @@
29 37 self.view.backgroundColor = [UIColor whiteColor];
30 38 [self setUPViews];
31 39 self.title = self.titleName;
32   - self.selectImageV.image = [CNLiveGetImage getImageName:self.imageName];;
  40 +// self.selectImageV.image = [CNLiveGetImage cnRefresh_getImageName:self.imageName bundle:@"CNLiveDisease.bundle/CNLiveDisease" targetClass:[self class]];
  41 + self.selectImageV.image = [CNLiveGetImage getImageName:self.imageName];
33 42  
34 43 NSLog(@"打印这个页面走了吗");
35 44 }
... ... @@ -45,7 +54,12 @@
45 54 [self.view createAlertViewTitleArray:@[@"拍照",@"从手机相册选择"] subTitleArr:@[@"",@""] textColor:UIColorMake(11, 190, 0) subTitleColor:[UIColor whiteColor] firstFont:UIFontMake(18.0f) font:UIFontMake(18.0f) subFont:UIFontMake(18.0f) cancelTitle:@"取消" cancelFont:UIFontMake(18.0f) cancelTitleColor:UIColorMake(102, 102, 102) actionBlock:^(UIButton *button, NSInteger didRow) {
46 55 switch (didRow) {
47 56 case 0:{
  57 +// if ([CNAudioOrVideoMananger IsEnter]) {//在房间
  58 +// [QMUITips showWithText:@"音视频通话中..." inView:AppKeyWindow hideAfterDelay:1.5];
  59 +// return;
  60 +// }
48 61 [weakSelf takeToXFPhoto];
  62 +
49 63 }
50 64 break;
51 65 case 1:{
... ... @@ -57,20 +71,29 @@
57 71 }
58 72 }];
59 73 }
60   -
61 74 #pragma mark - 跳转到自定义相机
62 75 -(void)takeToXFPhoto {
63 76 XFCameraController *cameraController = [[XFCameraController alloc]init];
64 77  
65 78 cameraController.isCanShootVideo = NO;
  79 + NSString *tempName = [NSString stringWithFormat:@"%@/",@"name"];
  80 + NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:tempName];
  81 + NSFileManager *fileManager = [NSFileManager defaultManager];
  82 + BOOL isDir = NO;
  83 + // fileExistsAtPath 判断一个文件或目录是否有效,isDirectory判断是否一个目录
  84 + BOOL existed = [fileManager fileExistsAtPath:filePath isDirectory:&isDir];
  85 + if (!(isDir == YES && existed == YES)) {
  86 + // 在 temp 目录下创建一临时文件
  87 + [fileManager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
  88 + }
  89 + cameraController.outPutPath = filePath;
66 90 __weak XFCameraController *weakCameraController = cameraController;
67 91 cameraController.takePhotosCompletionBlock = ^(UIImage *image, NSError *error) {
68 92 if (!error) {
69 93 [self didFinishSelectPhotoWithImage:image];
70 94 }
71   -
72 95 dispatch_async(dispatch_get_main_queue(), ^{
73   - [weakCameraController dismissViewControllerAnimated:YES completion:nil];
  96 + [weakCameraController dismissViewControllerAnimated:YES completion:nil];
74 97 });
75 98 };
76 99 [self presentViewController:cameraController animated:YES completion:nil];
... ... @@ -98,7 +121,7 @@
98 121 assetModel = [models lastObject];
99 122 }
100 123 dispatch_async(dispatch_get_main_queue(), ^{
101   - self.selectImageV.image = image;
  124 + self.selectImageV.image = image;
102 125 });
103 126 [self getUpFieldList:image];
104 127  
... ... @@ -108,65 +131,113 @@
108 131 }];
109 132 }
110 133 #pragma maek -从相册选择
111   --(void)pushTZImagePickerController {
112   - [CNImagePickerManager ImagePickerWithMaxImagesCount:1 columnNumber:4 delegate:self pushPhotoPickerVc:YES isSelectOriginalPhoto:YES selectedAssets:nil enterType:CNImagePickerEnterTypeOther pickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
  134 +- (void)pushTZImagePickerController {
  135 + __weak typeof(self)weakSelf = self;
  136 + TZImagePickerController *picker = [[TZImagePickerController alloc]initWithMaxImagesCount:1 delegate:self];
  137 + picker.allowPickingVideo = NO;
  138 + picker.allowPreview = NO;
  139 + picker.allowPickingGif = NO;
  140 + picker.allowTakePicture = NO;
  141 + [picker setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
113 142 dispatch_async(dispatch_get_main_queue(), ^{
114   - self.selectImageV.image = [photos firstObject];
  143 + weakSelf.selectImageV.image = [photos firstObject];
115 144 });
116   -
117   -// [self getUpFieldList:[photos firstObject]];
118   -
119   -
  145 + [weakSelf
  146 + getUpFieldList:[photos firstObject]];
120 147 }];
  148 + [self presentViewController:picker animated:YES completion:nil];
121 149 }
122 150  
123 151 -(void)getUpFieldList:(UIImage *)image {
124 152  
125   -// NSString *url = @"https://xcx.aiphsn.com/recognition.php";
126   -// [QMUITips showLoading:@"正在识别中" inView:AppKeyWindow];
127   -//
128   -// NSDictionary *param = @{@"type":[CNDiseaseType showType:self.titleName]};
129   -// [CNLiveUploadManager uploadRequestType:CNLiveUploadTypeThird url:url dic:param image:image isOriginal:NO limitType:(AppPhototLimitType)AppPhototLimitTypeFriendsCircle progress:^(float progress) {
130   -//
131   -// } success:^(CNLiveUploadModel *uploadModel) {
132   -// NSLog(@"f打印啊啊啊啊啊%@",uploadModel.responseObject);
133   -// [QMUITips hideAllTipsInView:AppKeyWindow];
134   -// NSDictionary *dic = [uploadModel.responseObject objectForKey:@"disease"];
135   -// if ([[dic objectForKey:@"name"] isEqualToString:@"抱歉图片不能识别"]) {
136   -// CNDiseaseFailedController *failVc = [[CNDiseaseFailedController alloc]init];
137   -// failVc.name = [dic objectForKey:@"name"];
138   -// failVc.introduction = [dic objectForKey:@"introduction"];
139   -// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
140   -// [[AppDelegate sharedAppDelegate]pushViewController:failVc withBackTitle:@""];
141   -// });
142   -// }else {
143   -// CNLiveDiseaseDescController * diseaseView = [[CNLiveDiseaseDescController alloc] init];
144   -// diseaseView.dataDict = [uploadModel.responseObject objectForKey:@"disease"];
145   -// [[AppDelegate sharedAppDelegate] pushViewController:diseaseView withBackTitle:@""];
146   -// }
147   -// } failure:^(CNLiveUploadModel *uploadModel, NSError *error) {
148   -// NSLog(@"打印error%@",error);
149   -// [QMUITips hideAllTipsInView:AppKeyWindow];
150   -// if (error.code == -1009) {
151   -// [QMUITips showError:@"似乎已断开与互联网的连接" inView:AppKeyWindow hideAfterDelay:1.5f];
152   -// }else {
153   -// [QMUITips showError:@"识别错误,请重新识别" inView:AppKeyWindow hideAfterDelay:1.5f];
154   -// }
155   -// }];
  153 + NSString *url = @"https://xcx.aiphsn.com/recognition.php";
  154 + [QMUITips showLoading:@"正在识别中" inView:self.view];
  155 +
  156 + NSDictionary *param = @{@"type":[CNDiseaseType showType:self.titleName]};
  157 + [CNLiveNetworking uploadNetworkWithURLString:url Param:param FormDataBlock:^(id<AFMultipartFormData> formData) {
  158 + /*
  159 + *该方法的参数
  160 + 1. appendPartWithFileData:要上传的照片[二进制流]
  161 + 2. name:对应网站上[upload.php中]处理文件的字段(比如upload)
  162 + 3. fileName:要保存在服务器上的文件名
  163 + 4. mimeType:上传的文件的类型
  164 + */
  165 + NSData *imageData = nil;
  166 + NSDate *date = [NSDate date];
  167 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  168 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  169 + NSString *strDate = [dateFormatter stringFromDate:date];
  170 + int randCount = rand();
  171 + NSString *fileName = [NSString stringWithFormat:@"Image%d_%@_%d",1,strDate,randCount];
  172 + NSString *name = @"";
  173 + name = @"file";//file
  174 + NSString *mineType = @"image/jpeg";
  175 + imageData = [UIImage zipNSDataWithImage:image];//非原图压缩;
  176 + if (!imageData) {
  177 + // NSError *returnError = [NSError errorWithDomain:@"压缩失败" code:105 userInfo:@{NSLocalizedDescriptionKey:@"压缩失败,请重新获取"}];
  178 + // !failure ? : failure(nil,returnError);
  179 + [QMUITips showError:@"压缩失败,请重新获取" inView:self.view hideAfterDelay:1.5f];
  180 + return;
  181 + }
  182 + // 筛选
  183 + if ( [self isImageLimitType:imageData]) {
  184 +
  185 + }else{
  186 + // NSError *error = [NSError errorWithDomain:@"数据过大" code:104 userInfo:@{NSLocalizedDescriptionKey:@"数据过大,请重新获取"}];
  187 + // !failure ? : failure(nil,error);
  188 + [QMUITips showError:@"数据过大,请重新获取" inView:self.view hideAfterDelay:1.5f];
  189 + return;
  190 +
  191 + }
  192 + [formData appendPartWithFileData:imageData name:name fileName:fileName mimeType:mineType];
  193 + } ProgressBlock:^(NSProgress *progress) {
  194 +
  195 + } CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
  196 + if (!error) {
  197 + [QMUITips hideAllTipsInView:self.view];
  198 + NSDictionary *dic = [responseObject objectForKey:@"disease"];
  199 + if ([[dic objectForKey:@"name"] isEqualToString:@"抱歉图片不能识别"]) {
  200 + CNLiveDiseaseFailedController *failVc = [[CNLiveDiseaseFailedController alloc]init];
  201 + failVc.name = [dic objectForKey:@"name"];
  202 + failVc.introduction = [dic objectForKey:@"introduction"];
  203 + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  204 + // [[AppDelegate sharedAppDelegate]pushViewController:failVc withBackTitle:@""];
  205 + [self.navigationController pushViewController:failVc animated:YES];
  206 + });
  207 + }else {
  208 + CNLiveDiseaseDescController * diseaseView = [[CNLiveDiseaseDescController alloc] init];
  209 + diseaseView.dataDict = [responseObject objectForKey:@"disease"];
  210 + // [[AppDelegate sharedAppDelegate] pushViewController:diseaseView withBackTitle:@""];
  211 + [self.navigationController pushViewController:diseaseView animated:YES];
  212 + }
  213 + }else {
  214 + [QMUITips hideAllTipsInView:self.view];
  215 + if (error.code == -1009) {
  216 + [QMUITips showError:@"似乎已断开与互联网的连接" inView:self.view hideAfterDelay:1.5f];
  217 + }else {
  218 + [QMUITips showError:@"识别错误,请重新识别" inView:self.view hideAfterDelay:1.5f];
  219 + }
  220 + }
  221 + }];
  222 +
156 223 }
157 224  
158   -
159   -
  225 +- (BOOL)isImageLimitType:(NSData *)data {
  226 + if (data.length <= kFriendsCircle_limit_photo) {
  227 + return YES;
  228 + }else{
  229 + return NO;
  230 + }
  231 +}
160 232 -(void)setUpLayout {
161 233 MJWeakSelf;
162   -
163 234 [_backImageV mas_makeConstraints:^(MASConstraintMaker *make) {
164 235 make.top.left.right.bottom.mas_equalTo(self.view);
165 236 }];
166 237 [_selectImageV mas_makeConstraints:^(MASConstraintMaker *make) {
167 238 make.centerX.mas_equalTo(weakSelf.view.mas_centerX);
168 239 make.height.width.mas_equalTo(127);
169   - make.top.mas_equalTo(kVerticalStatusHeight+ 44 +125);
  240 + make.top.mas_equalTo(kNavigationBarHeight +125);
170 241 }];
171 242 [_photoBtn mas_makeConstraints:^(MASConstraintMaker *make) {
172 243 make.top.mas_equalTo(weakSelf.selectImageV.mas_bottom).offset(30);
... ... @@ -175,38 +246,34 @@
175 246 make.height.mas_equalTo(40);
176 247 }];
177 248 }
178   -
179   --(UIImageView *)backImageV {
180   -
181   - if (!_backImageV) {
182   - _backImageV = [[UIImageView alloc]init];
183   -// _backImageV.image = [UIImage imageNamed:@"farming_bg"];
184   - _backImageV.image = [CNLiveGetImage getImageName:[NSString stringWithFormat:@"farming_bg"]];
185   - _backImageV.backgroundColor = [UIColor cyanColor];
186   - _backImageV.contentMode = UIViewContentModeScaleAspectFill;
187   - _backImageV.clipsToBounds = YES;
188   - _backImageV.userInteractionEnabled = YES;
189   - }
190   - return _backImageV;
191   -}
192   -
193 249 -(UIImageView *)selectImageV {
194   -
195 250 if (!_selectImageV) {
196 251 _selectImageV = [[UIImageView alloc]init];
197 252 _selectImageV.contentMode = UIViewContentModeScaleAspectFill;
198 253 _selectImageV.clipsToBounds = YES;
199   -// _selectImageV.backgroundColor = [UIColor cyanColor];
200 254 }
201 255 return _selectImageV;
202 256 }
203 257 -(UIButton *)photoBtn {
204 258 if (!_photoBtn) {
205 259 _photoBtn = [UIButton buttonWithType:UIButtonTypeCustom];
206   - // [_photoBtn setImage:[UIImage imageNamed:@"farming_release"] forState:UIControlStateNormal];
  260 +// [_photoBtn setImage:[UIImage imageNamed:@"farming_release"] forState:UIControlStateNormal];
207 261 [_photoBtn setImage:[CNLiveGetImage getImageName:[NSString stringWithFormat:@"farming_release"]] forState:UIControlStateNormal];
  262 +// [_photoBtn setTitle:@"从相册选择" forState:UIControlStateNormal];
208 263 [_photoBtn addTarget:self action:@selector(photoBtnClick) forControlEvents:UIControlEventTouchUpInside];
209 264 }
210 265 return _photoBtn;
211 266 }
  267 +-(UIImageView *)backImageV {
  268 + if (!_backImageV) {
  269 + _backImageV = [[UIImageView alloc]init];
  270 +// _backImageV.image = [UIImage imageNamed:@"farming_bg"];
  271 + _backImageV.image = [CNLiveGetImage getImageName:[NSString stringWithFormat:@"farming_bg"]];
  272 + _backImageV.contentMode = UIViewContentModeScaleAspectFill;
  273 +// _backImageV.backgroundColor = [UIColor cyanColor];
  274 + _backImageV.clipsToBounds = YES;
  275 + _backImageV.userInteractionEnabled = YES;
  276 + }
  277 + return _backImageV;
  278 +}
212 279 @end
... ...
CNLiveDisease/Classes/Actions/CNLiveTarget_A.h renamed to CNLiveDisease/Classes/Controller/CNLiveTarget_GetDisease.h
1 1 //
2   -// CNLiveTarget_A.h
3   -// CNLiveDisease
  2 +// CNLiveTarget_getDisease.h
  3 +// AFNetworking
4 4 //
5   -// Created by 殷巧娟 on 2019/1/25.
  5 +// Created by 殷巧娟 on 2019/6/6.
6 6 //
7 7  
8 8 #import <Foundation/Foundation.h>
9 9 #import "CNLiveDiseaseController.h"
10 10 NS_ASSUME_NONNULL_BEGIN
11 11  
12   -@interface CNLiveTarget_A : NSObject
13   --(UIViewController *)CNLiveAction_ViewController:(NSDictionary *)params;
14   -// 要在.h引用这个控制器,否则外面会找不到这个控制器
  12 +@interface CNLiveTarget_GetDisease : NSObject
  13 +- (UIViewController *)CNLiveAction_getDiseaseConnectVc:(NSDictionary *)params;
15 14 @end
16 15  
17 16 NS_ASSUME_NONNULL_END
... ...
CNLiveDisease/Classes/Actions/CNLiveTarget_A.m renamed to CNLiveDisease/Classes/Controller/CNLiveTarget_GetDisease.m
1 1 //
2   -// CNLiveTarget_A.m
3   -// CNLiveDisease
  2 +// CNLiveTarget_getDisease.m
  3 +// AFNetworking
4 4 //
5   -// Created by 殷巧娟 on 2019/1/25.
  5 +// Created by 殷巧娟 on 2019/6/6.
6 6 //
7 7  
8   -#import "CNLiveTarget_A.h"
9   -
10   -@implementation CNLiveTarget_A
11   --(UIViewController *)CNLiveAction_ViewController:(NSDictionary *)params {
  8 +#import "CNLiveTarget_GetDisease.h"
  9 +@implementation CNLiveTarget_GetDisease
  10 +- (UIViewController *)CNLiveAction_getDiseaseConnectVc:(NSDictionary *)params {
12 11 CNLiveDiseaseController *vc = [[CNLiveDiseaseController alloc]init];
13 12 return vc;
14 13 }
... ...
CNLiveDisease/Classes/ModuleA/CNLiveCoreMediator+A.h deleted 100644 → 0
1   -//
2   -// CNLiveCoreMediator+A.h
3   -// CNLiveDisease
4   -//
5   -// Created by 殷巧娟 on 2019/1/25.
6   -//
7   -
8   -#import <CNLiveCoreMediator/CNLiveCoreMediator.h>
9   -
10   -NS_ASSUME_NONNULL_BEGIN
11   -
12   -@interface CNLiveCoreMediator (A)
13   -- (UIViewController *)A_ViewControllerWithParams:(NSDictionary *)params;
14   -@end
15   -
16   -NS_ASSUME_NONNULL_END
CNLiveDisease/Classes/ModuleA/CNLiveCoreMediator+A.m deleted 100644 → 0
1   -//
2   -// CNLiveCoreMediator+A.m
3   -// CNLiveDisease
4   -//
5   -// Created by 殷巧娟 on 2019/1/25.
6   -//
7   -
8   -#import "CNLiveCoreMediator+A.h"
9   -
10   -@implementation CNLiveCoreMediator (A)
11   --(UIViewController *)A_ViewControllerWithParams:(NSDictionary *)params {
12   -// return [self performTarget:@"A" action:@"ViewController" params:params shouldCacheTarget:NO];
13   - UIViewController *viewController = [self performTarget:@"A" action:@"ViewController" params:params shouldCacheTarget:NO];
14   - if ([viewController isKindOfClass:[UIViewController class]]) {
15   - // view controller 交付出去之后,可以由外界选择如何使用
16   - return viewController;
17   - }else
18   - {
19   - // 这里处理异常场景,具体如何处理取决于产品
20   - return [[UIViewController alloc] init];
21   - }
22   -}
23   -@end
CNLiveDisease/Classes/View/CNDiseaseViewCell.m
... ... @@ -7,10 +7,9 @@
7 7 //
8 8  
9 9 #import "CNDiseaseViewCell.h"
10   -#import <Masonry/Masonry.h>
11   -#import <CNLiveBaseKit/UIView+Extension.h>
  10 +#import "Masonry.h"
  11 +#import "CNLiveDefinesHeader.h"
12 12 #define MJWeakSelf __weak typeof(self) weakSelf = self;
13   -#define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
14 13 @implementation CNDiseaseViewCell
15 14 -(instancetype)initWithFrame:(CGRect)frame {
16 15 self = [super initWithFrame:frame];
... ...
CNLiveDisease/Classes/View/CNLiveGetImage.m
... ... @@ -14,8 +14,39 @@
14 14 NSURL *url = [bundle URLForResource:@"CNLiveDisease" withExtension:@"bundle"];
15 15 NSBundle *targetBundle = [NSBundle bundleWithURL:url];
16 16 UIImage *image = [UIImage imageNamed:imageName inBundle:targetBundle compatibleWithTraitCollection:nil];
  17 +
17 18 return image;
18 19  
19 20 }
  21 +///**
  22 +// * 创建图片
  23 +// *
  24 +// * @param imageName 图片名字
  25 +// * @param bundlePath 图片所在的bundle名字
  26 +// * @param targetClass 类和bundle的同级目录
  27 +// * @return 返回UIImage
  28 +// */
  29 +//+ (UIImage *)cnRefresh_getImageName:(NSString *)imageName bundle:(NSString *)bundlePath targetClass:(Class)targetClass{
  30 +// NSBundle *bundle = [NSBundle bundleForClass:targetClass];
  31 +// NSURL *url = [bundle URLForResource:bundlePath withExtension:@"bundle"];
  32 +// if (!url) {
  33 +// return [UIImage new];
  34 +// }
  35 +// NSBundle *targetBundle = [NSBundle bundleWithURL:url];
  36 +// if (!targetBundle) {
  37 +// return [UIImage new];
  38 +// }
  39 +// UIImage *image = [UIImage imageNamed:imageName inBundle:targetBundle compatibleWithTraitCollection:nil];
  40 +// if (image) {
  41 +// return image;
  42 +// }else {
  43 +// if ([UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil]) {
  44 +// return [UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
  45 +// }else{
  46 +// return [UIImage new];
  47 +// }
  48 +// }
  49 +//}
  50 +
20 51  
21 52 @end
... ...
Example/CNLiveDisease.xcodeproj/project.pbxproj
... ... @@ -307,12 +307,19 @@
307 307 );
308 308 inputPaths = (
309 309 "${SRCROOT}/Pods/Target Support Files/Pods-CNLiveDisease_Example/Pods-CNLiveDisease_Example-frameworks.sh",
  310 + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework",
310 311 "${BUILT_PRODUCTS_DIR}/CNLiveAVCamera/CNLiveAVCamera.framework",
311 312 "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework",
  313 + "${BUILT_PRODUCTS_DIR}/CNLiveBusinessTools/CNLiveBusinessTools.framework",
312 314 "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework",
  315 + "${BUILT_PRODUCTS_DIR}/CNLiveCommonClass/CNLiveCommonClass.framework",
313 316 "${BUILT_PRODUCTS_DIR}/CNLiveCoreMediator/CNLiveCoreMediator.framework",
  317 + "${BUILT_PRODUCTS_DIR}/CNLiveCoreMediator_ModuleDiseaseAction/CNLiveCoreMediator_ModuleDiseaseAction.framework",
314 318 "${BUILT_PRODUCTS_DIR}/CNLiveDisease/CNLiveDisease.framework",
315 319 "${BUILT_PRODUCTS_DIR}/CNLiveImagePickerController/CNLiveImagePickerController.framework",
  320 + "${BUILT_PRODUCTS_DIR}/CNLiveRequestBastKit/CNLiveRequestBastKit.framework",
  321 + "${BUILT_PRODUCTS_DIR}/CNLiveTripartiteManagement-FLAnimatedImage-Masonry-QMUIKit/CNLiveTripartiteManagement.framework",
  322 + "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework",
316 323 "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework",
317 324 "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework",
318 325 "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework",
... ... @@ -323,12 +330,19 @@
323 330 outputFileListPaths = (
324 331 );
325 332 outputPaths = (
  333 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework",
326 334 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveAVCamera.framework",
327 335 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework",
  336 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBusinessTools.framework",
328 337 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework",
  338 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonClass.framework",
329 339 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCoreMediator.framework",
  340 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCoreMediator_ModuleDiseaseAction.framework",
330 341 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveDisease.framework",
331 342 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveImagePickerController.framework",
  343 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveRequestBastKit.framework",
  344 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveTripartiteManagement.framework",
  345 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework",
332 346 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework",
333 347 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework",
334 348 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework",
... ... @@ -349,11 +363,18 @@
349 363 );
350 364 inputPaths = (
351 365 "${SRCROOT}/Pods/Target Support Files/Pods-CNLiveDisease_Tests/Pods-CNLiveDisease_Tests-frameworks.sh",
  366 + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework",
352 367 "${BUILT_PRODUCTS_DIR}/CNLiveAVCamera/CNLiveAVCamera.framework",
353 368 "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework",
  369 + "${BUILT_PRODUCTS_DIR}/CNLiveBusinessTools/CNLiveBusinessTools.framework",
354 370 "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework",
  371 + "${BUILT_PRODUCTS_DIR}/CNLiveCommonClass/CNLiveCommonClass.framework",
355 372 "${BUILT_PRODUCTS_DIR}/CNLiveCoreMediator/CNLiveCoreMediator.framework",
  373 + "${BUILT_PRODUCTS_DIR}/CNLiveCoreMediator_ModuleDiseaseAction/CNLiveCoreMediator_ModuleDiseaseAction.framework",
356 374 "${BUILT_PRODUCTS_DIR}/CNLiveImagePickerController/CNLiveImagePickerController.framework",
  375 + "${BUILT_PRODUCTS_DIR}/CNLiveRequestBastKit/CNLiveRequestBastKit.framework",
  376 + "${BUILT_PRODUCTS_DIR}/CNLiveTripartiteManagement-Masonry-QMUIKit/CNLiveTripartiteManagement.framework",
  377 + "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework",
357 378 "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework",
358 379 "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework",
359 380 "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework",
... ... @@ -364,11 +385,18 @@
364 385 outputFileListPaths = (
365 386 );
366 387 outputPaths = (
  388 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework",
367 389 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveAVCamera.framework",
368 390 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework",
  391 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBusinessTools.framework",
369 392 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework",
  393 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonClass.framework",
370 394 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCoreMediator.framework",
  395 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCoreMediator_ModuleDiseaseAction.framework",
371 396 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveImagePickerController.framework",
  397 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveRequestBastKit.framework",
  398 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveTripartiteManagement.framework",
  399 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework",
372 400 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework",
373 401 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework",
374 402 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework",
... ...
Example/CNLiveDisease.xcworkspace/xcuserdata/yinqiaojuan.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
Example/CNLiveDisease/CNLiveAppDelegate.m
... ... @@ -12,12 +12,12 @@
12 12  
13 13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
14 14 {
15   -// UIWindow *window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
16   -// window.backgroundColor = [UIColor whiteColor];
17   -// UIViewController *vc = [[CNLiveViewController alloc]init];
18   -//// UINavigationController *nav =[[UINavigationController alloc]initWithRootViewController:vc];
19   -// window.rootViewController = vc;
20   -// [window makeKeyAndVisible];
  15 + self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  16 + self.window.backgroundColor = [UIColor whiteColor];
  17 + CNLiveViewController *vc = [[CNLiveViewController alloc]init];
  18 + UINavigationController *nav =[[UINavigationController alloc]initWithRootViewController:vc];
  19 + self.window.rootViewController = nav;
  20 + [self.window makeKeyAndVisible];
21 21 // Override point for customization after application launch.
22 22 return YES;
23 23 }
... ...
Example/CNLiveDisease/CNLiveDisease-Info.plist
... ... @@ -22,8 +22,16 @@
22 22 <string>????</string>
23 23 <key>CFBundleVersion</key>
24 24 <string>1.0</string>
  25 + <key>LSApplicationCategoryType</key>
  26 + <string></string>
25 27 <key>LSRequiresIPhoneOS</key>
26 28 <true/>
  29 + <key>NSCameraUsageDescription</key>
  30 + <string>需要您的同意,APP才能访问相机</string>
  31 + <key>NSMicrophoneUsageDescription</key>
  32 + <string>需要您的同意,App才能访问麦克风</string>
  33 + <key>NSPhotoLibraryUsageDescription</key>
  34 + <string>需要您的同意,APP才能访问相册</string>
27 35 <key>UILaunchStoryboardName</key>
28 36 <string>LaunchScreen</string>
29 37 <key>UIMainStoryboardFile</key>
... ...
Example/CNLiveDisease/CNLiveViewController.m
... ... @@ -7,8 +7,7 @@
7 7 //
8 8  
9 9 #import "CNLiveViewController.h"
10   -
11   -#import "CNLiveCoreMediator+A.h"
  10 +#import "CNLiveCoreMediator+ModuleDiseaseAction.h"
12 11 @interface CNLiveViewController ()
13 12 @property (nonatomic, strong) UIButton *testButton;
14 13 @end
... ... @@ -35,11 +34,11 @@
35 34 -(void)testButtonClicked {
36 35 // CNLiveDiseaseController *vc = [[CNLiveDiseaseController alloc]init];
37 36 // vc.view.backgroundColor = [UIColor whiteColor];
38   - NSDictionary *params = [NSDictionary dictionary];
39   - UIViewController *vc = [[CNLiveCoreMediator sharedInstance]A_ViewControllerWithParams:params];
  37 + UIViewController *vc = [[CNLiveCoreMediator sharedInstance]CNLiveCoreMediator_getDiseaseConnectVc];
40 38 vc.view.backgroundColor = [UIColor whiteColor];
41   -// UIViewController *vc = [];
42   - [self presentViewController:vc animated:YES completion:nil];
  39 + [self.navigationController pushViewController:vc animated:YES];
  40 +// [self presentViewController:vc animated:YES completion:nil];
  41 +
43 42  
44 43 }
45 44 - (void)didReceiveMemoryWarning
... ...
Example/Podfile
... ... @@ -9,25 +9,30 @@ platform :ios, &#39;9.0&#39;
9 9 target 'CNLiveDisease_Example' do
10 10 pod 'CNLiveDisease', :path => '../'
11 11 pod 'CNLiveBaseKit'
12   - pod 'Masonry'
13   - pod 'QMUIKit', '~> 3.1.0'
14   - pod 'CNLiveCommonCategory'
  12 + pod 'CNLiveTripartiteManagement/Masonry'
  13 + pod 'CNLiveTripartiteManagement/QMUIKit'
  14 + pod 'CNLiveCommonCategory'
15 15 pod 'CNLiveImagePickerController'
16   - pod 'CNLiveAVCamera'
  16 + pod 'CNLiveAVCamera'
17 17 # pod 'CNLiveUploadManager'
18 18 pod 'FLAnimatedImage'
19 19 pod 'CNLiveCoreMediator'
  20 + pod 'CNLiveCommonClass'
  21 + pod 'CNLiveRequestBastKit'
  22 + pod 'CNLiveCoreMediator_ModuleDiseaseAction'
20 23 target 'CNLiveDisease_Tests' do
21 24 inherit! :search_paths
22 25 pod 'CNLiveBaseKit'
23   - pod 'Masonry'
24   - pod 'QMUIKit', '~> 3.1.0'
25   - pod 'CNLiveCommonCategory'
  26 + pod 'CNLiveTripartiteManagement/Masonry'
  27 + pod 'CNLiveTripartiteManagement/QMUIKit'
  28 + pod 'CNLiveCommonCategory'
26 29 pod 'CNLiveImagePickerController'
27 30 pod 'CNLiveAVCamera'
28 31 # pod 'CNLiveUploadManager'
29 32 pod 'FLAnimatedImage'
30 33 pod 'CNLiveCoreMediator'
31   -
  34 + pod 'CNLiveCommonClass'
  35 + pod 'CNLiveRequestBastKit'
  36 + pod 'CNLiveCoreMediator_ModuleDiseaseAction'
32 37 end
33 38 end
... ...
Example/Podfile.lock
1 1 PODS:
2   - - CNLiveAVCamera (0.1.1):
  2 + - AFNetworking (3.2.1):
  3 + - AFNetworking/NSURLSession (= 3.2.1)
  4 + - AFNetworking/Reachability (= 3.2.1)
  5 + - AFNetworking/Security (= 3.2.1)
  6 + - AFNetworking/Serialization (= 3.2.1)
  7 + - AFNetworking/UIKit (= 3.2.1)
  8 + - AFNetworking/NSURLSession (3.2.1):
  9 + - AFNetworking/Reachability
  10 + - AFNetworking/Security
  11 + - AFNetworking/Serialization
  12 + - AFNetworking/Reachability (3.2.1)
  13 + - AFNetworking/Security (3.2.1)
  14 + - AFNetworking/Serialization (3.2.1)
  15 + - AFNetworking/UIKit (3.2.1):
  16 + - AFNetworking/NSURLSession
  17 + - CNLiveAVCamera (0.1.2):
  18 + - CNLiveBaseKit
  19 + - CNLiveBusinessTools
  20 + - CNLiveCommonCategory
3 21 - Masonry (~> 1.0.2)
  22 + - QMUIKit (~> 3.1.7)
4 23 - CNLiveBaseKit (0.1.8):
5 24 - MJExtension (~> 3.0.15.1)
6   - - CNLiveCommonCategory (0.2.5):
7   - - SDWebImage (~> 4.4.2)
8   - - CNLiveCoreMediator (0.1.0)
9   - - CNLiveDisease (0.0.7):
  25 + - CNLiveBusinessTools (0.1.1):
  26 + - CNLiveBaseKit
  27 + - CNLiveEnvironmentConfiguration
  28 + - CNLiveUserManagement
  29 + - CNLiveCommonCategory (0.3.9):
  30 + - SDWebImage (~> 4.4.6)
  31 + - CNLiveCommonClass (0.0.2):
  32 + - CNLiveBaseKit
  33 + - CNLiveRequestBastKit
  34 + - CNLiveTripartiteManagement/QMUIKit
  35 + - CNLiveCoreMediator (0.1.1)
  36 + - CNLiveCoreMediator_ModuleDiseaseAction (0.0.2):
  37 + - CNLiveCoreMediator
  38 + - CNLiveDisease (0.1.0):
  39 + - CNLiveDisease/Controller (= 0.1.0)
  40 + - CNLiveDisease/View (= 0.1.0)
  41 + - CNLiveDisease/Controller (0.1.0):
10 42 - CNLiveAVCamera
11 43 - CNLiveBaseKit
12 44 - CNLiveCommonCategory
13   - - CNLiveCoreMediator
  45 + - CNLiveCommonClass
  46 + - CNLiveCoreMediator_ModuleDiseaseAction
  47 + - CNLiveDisease/View
14 48 - CNLiveImagePickerController
15   - - FLAnimatedImage
16   - - Masonry
17   - - QMUIKit (~> 3.1.0)
  49 + - CNLiveRequestBastKit
  50 + - CNLiveTripartiteManagement/FLAnimatedImage
  51 + - CNLiveTripartiteManagement/Masonry
  52 + - CNLiveTripartiteManagement/QMUIKit
  53 + - CNLiveDisease/View (0.1.0):
  54 + - CNLiveBaseKit
  55 + - CNLiveTripartiteManagement/QMUIKit
  56 + - CNLiveEnvironmentConfiguration (0.0.5)
18 57 - CNLiveImagePickerController (0.0.2)
  58 + - CNLiveRequestBastKit (0.2.1.6):
  59 + - AFNetworking
  60 + - CNLiveTripartiteManagement/FLAnimatedImage (0.0.6):
  61 + - FLAnimatedImage (~> 1.0.12)
  62 + - CNLiveTripartiteManagement/Masonry (0.0.6):
  63 + - Masonry (~> 1.0.2)
  64 + - CNLiveTripartiteManagement/QMUIKit (0.0.6):
  65 + - QMUIKit (~> 3.1.7)
  66 + - CNLiveUserManagement (0.0.8):
  67 + - MJExtension
19 68 - FLAnimatedImage (1.0.12)
20 69 - Masonry (1.0.2)
21 70 - MJExtension (3.0.15.1)
22   - - QMUIKit (3.1.0):
23   - - QMUIKit/QMUIComponents (= 3.1.0)
24   - - QMUIKit/QMUICore (= 3.1.0)
25   - - QMUIKit/QMUILog (= 3.1.0)
26   - - QMUIKit/QMUIMainFrame (= 3.1.0)
27   - - QMUIKit/QMUIResources (= 3.1.0)
28   - - QMUIKit/QMUIWeakObjectContainer (= 3.1.0)
29   - - QMUIKit/QMUIComponents (3.1.0):
30   - - QMUIKit/QMUIComponents/NavigationBarTransition (= 3.1.0)
31   - - QMUIKit/QMUIComponents/QMUIAlertController (= 3.1.0)
32   - - QMUIKit/QMUIComponents/QMUIAssetLibrary (= 3.1.0)
33   - - QMUIKit/QMUIComponents/QMUIBadge (= 3.1.0)
34   - - QMUIKit/QMUIComponents/QMUIButton (= 3.1.0)
35   - - QMUIKit/QMUIComponents/QMUICAAnimationExtension (= 3.1.0)
36   - - QMUIKit/QMUIComponents/QMUICellHeightCache (= 3.1.0)
37   - - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (= 3.1.0)
38   - - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (= 3.1.0)
39   - - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (= 3.1.0)
40   - - QMUIKit/QMUIComponents/QMUIConsole (= 3.1.0)
41   - - QMUIKit/QMUIComponents/QMUIDialogViewController (= 3.1.0)
42   - - QMUIKit/QMUIComponents/QMUIEmotionInputManager (= 3.1.0)
43   - - QMUIKit/QMUIComponents/QMUIEmotionView (= 3.1.0)
44   - - QMUIKit/QMUIComponents/QMUIEmptyView (= 3.1.0)
45   - - QMUIKit/QMUIComponents/QMUIFillButton (= 3.1.0)
46   - - QMUIKit/QMUIComponents/QMUIFloatLayoutView (= 3.1.0)
47   - - QMUIKit/QMUIComponents/QMUIGhostButton (= 3.1.0)
48   - - QMUIKit/QMUIComponents/QMUIGridView (= 3.1.0)
49   - - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (= 3.1.0)
50   - - QMUIKit/QMUIComponents/QMUIImagePreviewView (= 3.1.0)
51   - - QMUIKit/QMUIComponents/QMUIKeyboardManager (= 3.1.0)
52   - - QMUIKit/QMUIComponents/QMUILabel (= 3.1.0)
53   - - QMUIKit/QMUIComponents/QMUILinkButton (= 3.1.0)
54   - - QMUIKit/QMUIComponents/QMUILogManagerViewController (= 3.1.0)
55   - - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (= 3.1.0)
56   - - QMUIKit/QMUIComponents/QMUIMarqueeLabel (= 3.1.0)
57   - - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (= 3.1.0)
58   - - QMUIKit/QMUIComponents/QMUIMoreOperationController (= 3.1.0)
59   - - QMUIKit/QMUIComponents/QMUIMultipleDelegates (= 3.1.0)
60   - - QMUIKit/QMUIComponents/QMUINavigationButton (= 3.1.0)
61   - - QMUIKit/QMUIComponents/QMUINavigationTitleView (= 3.1.0)
62   - - QMUIKit/QMUIComponents/QMUIOrderedDictionary (= 3.1.0)
63   - - QMUIKit/QMUIComponents/QMUIPieProgressView (= 3.1.0)
64   - - QMUIKit/QMUIComponents/QMUIPopupContainerView (= 3.1.0)
65   - - QMUIKit/QMUIComponents/QMUIPopupMenuView (= 3.1.0)
66   - - QMUIKit/QMUIComponents/QMUIScrollAnimator (= 3.1.0)
67   - - QMUIKit/QMUIComponents/QMUISearchBar (= 3.1.0)
68   - - QMUIKit/QMUIComponents/QMUISearchController (= 3.1.0)
69   - - QMUIKit/QMUIComponents/QMUISegmentedControl (= 3.1.0)
70   - - QMUIKit/QMUIComponents/QMUISlider (= 3.1.0)
71   - - QMUIKit/QMUIComponents/QMUIStaticTableView (= 3.1.0)
72   - - QMUIKit/QMUIComponents/QMUITableView (= 3.1.0)
73   - - QMUIKit/QMUIComponents/QMUITableViewCell (= 3.1.0)
74   - - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (= 3.1.0)
75   - - QMUIKit/QMUIComponents/QMUITableViewProtocols (= 3.1.0)
76   - - QMUIKit/QMUIComponents/QMUITestView (= 3.1.0)
77   - - QMUIKit/QMUIComponents/QMUITextField (= 3.1.0)
78   - - QMUIKit/QMUIComponents/QMUITextView (= 3.1.0)
79   - - QMUIKit/QMUIComponents/QMUITips (= 3.1.0)
80   - - QMUIKit/QMUIComponents/QMUIToastView (= 3.1.0)
81   - - QMUIKit/QMUIComponents/QMUIToolbarButton (= 3.1.0)
82   - - QMUIKit/QMUIComponents/QMUIVisualEffectView (= 3.1.0)
83   - - QMUIKit/QMUIComponents/QMUIZoomImageView (= 3.1.0)
84   - - QMUIKit/QMUICore
85   - - QMUIKit/QMUIComponents/NavigationBarTransition (3.1.0):
  71 + - QMUIKit (3.1.9):
  72 + - QMUIKit/QMUIComponents (= 3.1.9)
  73 + - QMUIKit/QMUICore (= 3.1.9)
  74 + - QMUIKit/QMUILog (= 3.1.9)
  75 + - QMUIKit/QMUIMainFrame (= 3.1.9)
  76 + - QMUIKit/QMUIResources (= 3.1.9)
  77 + - QMUIKit/QMUIWeakObjectContainer (= 3.1.9)
  78 + - QMUIKit/QMUIComponents (3.1.9):
  79 + - QMUIKit/QMUIComponents/NavigationBarTransition (= 3.1.9)
  80 + - QMUIKit/QMUIComponents/QMUIAlertController (= 3.1.9)
  81 + - QMUIKit/QMUIComponents/QMUIAssetLibrary (= 3.1.9)
  82 + - QMUIKit/QMUIComponents/QMUIBadge (= 3.1.9)
  83 + - QMUIKit/QMUIComponents/QMUIButton (= 3.1.9)
  84 + - QMUIKit/QMUIComponents/QMUICAAnimationExtension (= 3.1.9)
  85 + - QMUIKit/QMUIComponents/QMUICellHeightCache (= 3.1.9)
  86 + - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (= 3.1.9)
  87 + - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (= 3.1.9)
  88 + - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (= 3.1.9)
  89 + - QMUIKit/QMUIComponents/QMUIConsole (= 3.1.9)
  90 + - QMUIKit/QMUIComponents/QMUIDialogViewController (= 3.1.9)
  91 + - QMUIKit/QMUIComponents/QMUIEmotionInputManager (= 3.1.9)
  92 + - QMUIKit/QMUIComponents/QMUIEmotionView (= 3.1.9)
  93 + - QMUIKit/QMUIComponents/QMUIEmptyView (= 3.1.9)
  94 + - QMUIKit/QMUIComponents/QMUIFillButton (= 3.1.9)
  95 + - QMUIKit/QMUIComponents/QMUIFloatLayoutView (= 3.1.9)
  96 + - QMUIKit/QMUIComponents/QMUIGhostButton (= 3.1.9)
  97 + - QMUIKit/QMUIComponents/QMUIGridView (= 3.1.9)
  98 + - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (= 3.1.9)
  99 + - QMUIKit/QMUIComponents/QMUIImagePreviewView (= 3.1.9)
  100 + - QMUIKit/QMUIComponents/QMUIKeyboardManager (= 3.1.9)
  101 + - QMUIKit/QMUIComponents/QMUILabel (= 3.1.9)
  102 + - QMUIKit/QMUIComponents/QMUILinkButton (= 3.1.9)
  103 + - QMUIKit/QMUIComponents/QMUILogManagerViewController (= 3.1.9)
  104 + - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (= 3.1.9)
  105 + - QMUIKit/QMUIComponents/QMUIMarqueeLabel (= 3.1.9)
  106 + - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (= 3.1.9)
  107 + - QMUIKit/QMUIComponents/QMUIMoreOperationController (= 3.1.9)
  108 + - QMUIKit/QMUIComponents/QMUIMultipleDelegates (= 3.1.9)
  109 + - QMUIKit/QMUIComponents/QMUINavigationButton (= 3.1.9)
  110 + - QMUIKit/QMUIComponents/QMUINavigationTitleView (= 3.1.9)
  111 + - QMUIKit/QMUIComponents/QMUIOrderedDictionary (= 3.1.9)
  112 + - QMUIKit/QMUIComponents/QMUIPieProgressView (= 3.1.9)
  113 + - QMUIKit/QMUIComponents/QMUIPopupContainerView (= 3.1.9)
  114 + - QMUIKit/QMUIComponents/QMUIPopupMenuView (= 3.1.9)
  115 + - QMUIKit/QMUIComponents/QMUIScrollAnimator (= 3.1.9)
  116 + - QMUIKit/QMUIComponents/QMUISearchBar (= 3.1.9)
  117 + - QMUIKit/QMUIComponents/QMUISearchController (= 3.1.9)
  118 + - QMUIKit/QMUIComponents/QMUISegmentedControl (= 3.1.9)
  119 + - QMUIKit/QMUIComponents/QMUISlider (= 3.1.9)
  120 + - QMUIKit/QMUIComponents/QMUIStaticTableView (= 3.1.9)
  121 + - QMUIKit/QMUIComponents/QMUITableView (= 3.1.9)
  122 + - QMUIKit/QMUIComponents/QMUITableViewCell (= 3.1.9)
  123 + - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (= 3.1.9)
  124 + - QMUIKit/QMUIComponents/QMUITableViewProtocols (= 3.1.9)
  125 + - QMUIKit/QMUIComponents/QMUITestView (= 3.1.9)
  126 + - QMUIKit/QMUIComponents/QMUITextField (= 3.1.9)
  127 + - QMUIKit/QMUIComponents/QMUITextView (= 3.1.9)
  128 + - QMUIKit/QMUIComponents/QMUITips (= 3.1.9)
  129 + - QMUIKit/QMUIComponents/QMUIToastView (= 3.1.9)
  130 + - QMUIKit/QMUIComponents/QMUIToolbarButton (= 3.1.9)
  131 + - QMUIKit/QMUIComponents/QMUIVisualEffectView (= 3.1.9)
  132 + - QMUIKit/QMUIComponents/QMUIZoomImageView (= 3.1.9)
  133 + - QMUIKit/QMUICore
  134 + - QMUIKit/QMUIComponents/NavigationBarTransition (3.1.9):
86 135 - QMUIKit/QMUIComponents/QMUINavigationTitleView
87 136 - QMUIKit/QMUICore
88 137 - QMUIKit/QMUIMainFrame
89   - - QMUIKit/QMUIComponents/QMUIAlertController (3.1.0):
  138 + - QMUIKit/QMUIComponents/QMUIAlertController (3.1.9):
90 139 - QMUIKit/QMUIComponents/QMUIButton
91 140 - QMUIKit/QMUIComponents/QMUIModalPresentationViewController
92 141 - QMUIKit/QMUIComponents/QMUITextField
93 142 - QMUIKit/QMUICore
94   - - QMUIKit/QMUIComponents/QMUIAssetLibrary (3.1.0):
  143 + - QMUIKit/QMUIComponents/QMUIAssetLibrary (3.1.9):
95 144 - QMUIKit/QMUICore
96   - - QMUIKit/QMUIComponents/QMUIBadge (3.1.0):
  145 + - QMUIKit/QMUIComponents/QMUIBadge (3.1.9):
97 146 - QMUIKit/QMUIComponents/QMUILabel
98 147 - QMUIKit/QMUICore
99   - - QMUIKit/QMUIComponents/QMUIButton (3.1.0):
  148 + - QMUIKit/QMUIComponents/QMUIButton (3.1.9):
100 149 - QMUIKit/QMUICore
101   - - QMUIKit/QMUIComponents/QMUICAAnimationExtension (3.1.0):
  150 + - QMUIKit/QMUIComponents/QMUICAAnimationExtension (3.1.9):
102 151 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
103 152 - QMUIKit/QMUICore
104   - - QMUIKit/QMUIComponents/QMUICellHeightCache (3.1.0):
  153 + - QMUIKit/QMUIComponents/QMUICellHeightCache (3.1.9):
105 154 - QMUIKit/QMUIComponents/QMUITableViewProtocols
106 155 - QMUIKit/QMUICore
107   - - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (3.1.0):
  156 + - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (3.1.9):
108 157 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
109 158 - QMUIKit/QMUIComponents/QMUITableViewProtocols
110 159 - QMUIKit/QMUICore
111   - - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (3.1.0):
  160 + - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (3.1.9):
112 161 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
113 162 - QMUIKit/QMUICore
114   - - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (3.1.0):
  163 + - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (3.1.9):
115 164 - QMUIKit/QMUICore
116   - - QMUIKit/QMUIComponents/QMUIConsole (3.1.0):
  165 + - QMUIKit/QMUIComponents/QMUIConsole (3.1.9):
117 166 - QMUIKit/QMUIComponents/QMUIButton
118 167 - QMUIKit/QMUIComponents/QMUICAAnimationExtension
119 168 - QMUIKit/QMUIComponents/QMUIPopupMenuView
120 169 - QMUIKit/QMUIComponents/QMUITextField
121 170 - QMUIKit/QMUIComponents/QMUITextView
122 171 - QMUIKit/QMUICore
123   - - QMUIKit/QMUIComponents/QMUIDialogViewController (3.1.0):
  172 + - QMUIKit/QMUIComponents/QMUIDialogViewController (3.1.9):
124 173 - QMUIKit/QMUIComponents/QMUIButton
125 174 - QMUIKit/QMUIComponents/QMUILabel
126 175 - QMUIKit/QMUIComponents/QMUIModalPresentationViewController
... ... @@ -130,27 +179,27 @@ PODS:
130 179 - QMUIKit/QMUIComponents/QMUITextField
131 180 - QMUIKit/QMUICore
132 181 - QMUIKit/QMUIMainFrame
133   - - QMUIKit/QMUIComponents/QMUIEmotionInputManager (3.1.0):
  182 + - QMUIKit/QMUIComponents/QMUIEmotionInputManager (3.1.9):
134 183 - QMUIKit/QMUIComponents/QMUIEmotionView
135 184 - QMUIKit/QMUICore
136   - - QMUIKit/QMUIComponents/QMUIEmotionView (3.1.0):
  185 + - QMUIKit/QMUIComponents/QMUIEmotionView (3.1.9):
137 186 - QMUIKit/QMUIComponents/QMUIButton
138 187 - QMUIKit/QMUICore
139 188 - QMUIKit/QMUIResources
140   - - QMUIKit/QMUIComponents/QMUIEmptyView (3.1.0):
  189 + - QMUIKit/QMUIComponents/QMUIEmptyView (3.1.9):
141 190 - QMUIKit/QMUIComponents/QMUIButton
142 191 - QMUIKit/QMUICore
143   - - QMUIKit/QMUIComponents/QMUIFillButton (3.1.0):
  192 + - QMUIKit/QMUIComponents/QMUIFillButton (3.1.9):
144 193 - QMUIKit/QMUIComponents/QMUIButton
145 194 - QMUIKit/QMUICore
146   - - QMUIKit/QMUIComponents/QMUIFloatLayoutView (3.1.0):
  195 + - QMUIKit/QMUIComponents/QMUIFloatLayoutView (3.1.9):
147 196 - QMUIKit/QMUICore
148   - - QMUIKit/QMUIComponents/QMUIGhostButton (3.1.0):
  197 + - QMUIKit/QMUIComponents/QMUIGhostButton (3.1.9):
149 198 - QMUIKit/QMUIComponents/QMUIButton
150 199 - QMUIKit/QMUICore
151   - - QMUIKit/QMUIComponents/QMUIGridView (3.1.0):
  200 + - QMUIKit/QMUIComponents/QMUIGridView (3.1.9):
152 201 - QMUIKit/QMUICore
153   - - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (3.1.0):
  202 + - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (3.1.9):
154 203 - QMUIKit/QMUIComponents/QMUIAlertController
155 204 - QMUIKit/QMUIComponents/QMUIAssetLibrary
156 205 - QMUIKit/QMUIComponents/QMUIButton
... ... @@ -162,7 +211,7 @@ PODS:
162 211 - QMUIKit/QMUICore
163 212 - QMUIKit/QMUIMainFrame
164 213 - QMUIKit/QMUIResources
165   - - QMUIKit/QMUIComponents/QMUIImagePreviewView (3.1.0):
  214 + - QMUIKit/QMUIComponents/QMUIImagePreviewView (3.1.9):
166 215 - QMUIKit/QMUIComponents/QMUIButton
167 216 - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout
168 217 - QMUIKit/QMUIComponents/QMUIEmptyView
... ... @@ -170,111 +219,111 @@ PODS:
170 219 - QMUIKit/QMUIComponents/QMUIZoomImageView
171 220 - QMUIKit/QMUICore
172 221 - QMUIKit/QMUIMainFrame
173   - - QMUIKit/QMUIComponents/QMUIKeyboardManager (3.1.0):
  222 + - QMUIKit/QMUIComponents/QMUIKeyboardManager (3.1.9):
174 223 - QMUIKit/QMUICore
175   - - QMUIKit/QMUIComponents/QMUILabel (3.1.0):
  224 + - QMUIKit/QMUIComponents/QMUILabel (3.1.9):
176 225 - QMUIKit/QMUICore
177   - - QMUIKit/QMUIComponents/QMUILinkButton (3.1.0):
  226 + - QMUIKit/QMUIComponents/QMUILinkButton (3.1.9):
178 227 - QMUIKit/QMUIComponents/QMUIButton
179 228 - QMUIKit/QMUICore
180   - - QMUIKit/QMUIComponents/QMUILogManagerViewController (3.1.0):
  229 + - QMUIKit/QMUIComponents/QMUILogManagerViewController (3.1.9):
181 230 - QMUIKit/QMUIComponents/QMUIPopupMenuView
182 231 - QMUIKit/QMUIComponents/QMUISearchController
183 232 - QMUIKit/QMUIComponents/QMUIStaticTableView
184 233 - QMUIKit/QMUIComponents/QMUITableView
185 234 - QMUIKit/QMUICore
186 235 - QMUIKit/QMUIMainFrame
187   - - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (3.1.0):
  236 + - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (3.1.9):
188 237 - QMUIKit/QMUICore
189   - - QMUIKit/QMUIComponents/QMUIMarqueeLabel (3.1.0):
  238 + - QMUIKit/QMUIComponents/QMUIMarqueeLabel (3.1.9):
190 239 - QMUIKit/QMUICore
191   - - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (3.1.0):
  240 + - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (3.1.9):
192 241 - QMUIKit/QMUIComponents/QMUIKeyboardManager
193 242 - QMUIKit/QMUICore
194   - - QMUIKit/QMUIComponents/QMUIMoreOperationController (3.1.0):
  243 + - QMUIKit/QMUIComponents/QMUIMoreOperationController (3.1.9):
195 244 - QMUIKit/QMUIComponents/QMUIButton
196 245 - QMUIKit/QMUIComponents/QMUIModalPresentationViewController
197 246 - QMUIKit/QMUICore
198   - - QMUIKit/QMUIComponents/QMUIMultipleDelegates (3.1.0):
  247 + - QMUIKit/QMUIComponents/QMUIMultipleDelegates (3.1.9):
199 248 - QMUIKit/QMUICore
200   - - QMUIKit/QMUIComponents/QMUINavigationButton (3.1.0):
  249 + - QMUIKit/QMUIComponents/QMUINavigationButton (3.1.9):
201 250 - QMUIKit/QMUICore
202 251 - QMUIKit/QMUIMainFrame
203   - - QMUIKit/QMUIComponents/QMUINavigationTitleView (3.1.0):
  252 + - QMUIKit/QMUIComponents/QMUINavigationTitleView (3.1.9):
204 253 - QMUIKit/QMUIComponents/QMUIButton
205 254 - QMUIKit/QMUICore
206   - - QMUIKit/QMUIComponents/QMUIOrderedDictionary (3.1.0):
  255 + - QMUIKit/QMUIComponents/QMUIOrderedDictionary (3.1.9):
207 256 - QMUIKit/QMUICore
208   - - QMUIKit/QMUIComponents/QMUIPieProgressView (3.1.0):
  257 + - QMUIKit/QMUIComponents/QMUIPieProgressView (3.1.9):
209 258 - QMUIKit/QMUICore
210   - - QMUIKit/QMUIComponents/QMUIPopupContainerView (3.1.0):
  259 + - QMUIKit/QMUIComponents/QMUIPopupContainerView (3.1.9):
211 260 - QMUIKit/QMUICore
212 261 - QMUIKit/QMUIMainFrame
213   - - QMUIKit/QMUIComponents/QMUIPopupMenuView (3.1.0):
  262 + - QMUIKit/QMUIComponents/QMUIPopupMenuView (3.1.9):
214 263 - QMUIKit/QMUIComponents/QMUIButton
215 264 - QMUIKit/QMUIComponents/QMUIPopupContainerView
216 265 - QMUIKit/QMUICore
217   - - QMUIKit/QMUIComponents/QMUIScrollAnimator (3.1.0):
  266 + - QMUIKit/QMUIComponents/QMUIScrollAnimator (3.1.9):
218 267 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
219 268 - QMUIKit/QMUICore
220   - - QMUIKit/QMUIComponents/QMUISearchBar (3.1.0):
  269 + - QMUIKit/QMUIComponents/QMUISearchBar (3.1.9):
221 270 - QMUIKit/QMUICore
222   - - QMUIKit/QMUIComponents/QMUISearchController (3.1.0):
  271 + - QMUIKit/QMUIComponents/QMUISearchController (3.1.9):
223 272 - QMUIKit/QMUIComponents/QMUIEmptyView
224 273 - QMUIKit/QMUIComponents/QMUISearchBar
225 274 - QMUIKit/QMUICore
226 275 - QMUIKit/QMUIMainFrame
227   - - QMUIKit/QMUIComponents/QMUISegmentedControl (3.1.0):
  276 + - QMUIKit/QMUIComponents/QMUISegmentedControl (3.1.9):
228 277 - QMUIKit/QMUICore
229   - - QMUIKit/QMUIComponents/QMUISlider (3.1.0):
  278 + - QMUIKit/QMUIComponents/QMUISlider (3.1.9):
230 279 - QMUIKit/QMUICore
231   - - QMUIKit/QMUIComponents/QMUIStaticTableView (3.1.0):
  280 + - QMUIKit/QMUIComponents/QMUIStaticTableView (3.1.9):
232 281 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
233 282 - QMUIKit/QMUIComponents/QMUITableViewCell
234 283 - QMUIKit/QMUICore
235   - - QMUIKit/QMUIComponents/QMUITableView (3.1.0):
  284 + - QMUIKit/QMUIComponents/QMUITableView (3.1.9):
236 285 - QMUIKit/QMUIComponents/QMUITableViewProtocols
237 286 - QMUIKit/QMUICore
238   - - QMUIKit/QMUIComponents/QMUITableViewCell (3.1.0):
  287 + - QMUIKit/QMUIComponents/QMUITableViewCell (3.1.9):
239 288 - QMUIKit/QMUIComponents/QMUIButton
240 289 - QMUIKit/QMUICore
241   - - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (3.1.0):
  290 + - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (3.1.9):
242 291 - QMUIKit/QMUICore
243   - - QMUIKit/QMUIComponents/QMUITableViewProtocols (3.1.0):
  292 + - QMUIKit/QMUIComponents/QMUITableViewProtocols (3.1.9):
244 293 - QMUIKit/QMUICore
245   - - QMUIKit/QMUIComponents/QMUITestView (3.1.0):
  294 + - QMUIKit/QMUIComponents/QMUITestView (3.1.9):
246 295 - QMUIKit/QMUICore
247   - - QMUIKit/QMUIComponents/QMUITextField (3.1.0):
  296 + - QMUIKit/QMUIComponents/QMUITextField (3.1.9):
248 297 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
249 298 - QMUIKit/QMUICore
250   - - QMUIKit/QMUIComponents/QMUITextView (3.1.0):
  299 + - QMUIKit/QMUIComponents/QMUITextView (3.1.9):
251 300 - QMUIKit/QMUIComponents/QMUILabel
252 301 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
253 302 - QMUIKit/QMUICore
254   - - QMUIKit/QMUIComponents/QMUITips (3.1.0):
  303 + - QMUIKit/QMUIComponents/QMUITips (3.1.9):
255 304 - QMUIKit/QMUIComponents/QMUIToastView
256 305 - QMUIKit/QMUICore
257 306 - QMUIKit/QMUIResources
258   - - QMUIKit/QMUIComponents/QMUIToastView (3.1.0):
  307 + - QMUIKit/QMUIComponents/QMUIToastView (3.1.9):
259 308 - QMUIKit/QMUIComponents/QMUIKeyboardManager
260 309 - QMUIKit/QMUIComponents/QMUIVisualEffectView
261 310 - QMUIKit/QMUICore
262   - - QMUIKit/QMUIComponents/QMUIToolbarButton (3.1.0):
  311 + - QMUIKit/QMUIComponents/QMUIToolbarButton (3.1.9):
263 312 - QMUIKit/QMUICore
264   - - QMUIKit/QMUIComponents/QMUIVisualEffectView (3.1.0):
  313 + - QMUIKit/QMUIComponents/QMUIVisualEffectView (3.1.9):
265 314 - QMUIKit/QMUICore
266   - - QMUIKit/QMUIComponents/QMUIZoomImageView (3.1.0):
  315 + - QMUIKit/QMUIComponents/QMUIZoomImageView (3.1.9):
267 316 - QMUIKit/QMUIComponents/QMUIAssetLibrary
268 317 - QMUIKit/QMUIComponents/QMUIButton
269 318 - QMUIKit/QMUIComponents/QMUIEmptyView
270 319 - QMUIKit/QMUIComponents/QMUIPieProgressView
271 320 - QMUIKit/QMUIComponents/QMUISlider
272 321 - QMUIKit/QMUICore
273   - - QMUIKit/QMUICore (3.1.0):
  322 + - QMUIKit/QMUICore (3.1.9):
274 323 - QMUIKit/QMUILog
275 324 - QMUIKit/QMUIWeakObjectContainer
276   - - QMUIKit/QMUILog (3.1.0)
277   - - QMUIKit/QMUIMainFrame (3.1.0):
  325 + - QMUIKit/QMUILog (3.1.9)
  326 + - QMUIKit/QMUIMainFrame (3.1.9):
278 327 - QMUIKit/QMUIComponents/QMUIEmptyView
279 328 - QMUIKit/QMUIComponents/QMUIKeyboardManager
280 329 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
... ... @@ -283,31 +332,42 @@ PODS:
283 332 - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView
284 333 - QMUIKit/QMUICore
285 334 - QMUIKit/QMUILog
286   - - QMUIKit/QMUIResources (3.1.0)
287   - - QMUIKit/QMUIWeakObjectContainer (3.1.0)
288   - - SDWebImage (4.4.3):
289   - - SDWebImage/Core (= 4.4.3)
290   - - SDWebImage/Core (4.4.3)
  335 + - QMUIKit/QMUIResources (3.1.9)
  336 + - QMUIKit/QMUIWeakObjectContainer (3.1.9)
  337 + - SDWebImage (4.4.6):
  338 + - SDWebImage/Core (= 4.4.6)
  339 + - SDWebImage/Core (4.4.6)
291 340  
292 341 DEPENDENCIES:
293 342 - CNLiveAVCamera
294 343 - CNLiveBaseKit
295 344 - CNLiveCommonCategory
  345 + - CNLiveCommonClass
296 346 - CNLiveCoreMediator
  347 + - CNLiveCoreMediator_ModuleDiseaseAction
297 348 - CNLiveDisease (from `../`)
298 349 - CNLiveImagePickerController
  350 + - CNLiveRequestBastKit
  351 + - CNLiveTripartiteManagement/Masonry
  352 + - CNLiveTripartiteManagement/QMUIKit
299 353 - FLAnimatedImage
300   - - Masonry
301   - - QMUIKit (~> 3.1.0)
302 354  
303 355 SPEC REPOS:
304 356 http://bj.gitlab.cnlive.com/ios-team/CNLiveRepos.git:
305 357 - CNLiveAVCamera
306 358 - CNLiveBaseKit
  359 + - CNLiveBusinessTools
307 360 - CNLiveCommonCategory
  361 + - CNLiveCommonClass
308 362 - CNLiveCoreMediator
  363 + - CNLiveCoreMediator_ModuleDiseaseAction
  364 + - CNLiveEnvironmentConfiguration
309 365 - CNLiveImagePickerController
  366 + - CNLiveRequestBastKit
  367 + - CNLiveTripartiteManagement
  368 + - CNLiveUserManagement
310 369 https://github.com/cocoapods/specs.git:
  370 + - AFNetworking
311 371 - FLAnimatedImage
312 372 - Masonry
313 373 - MJExtension
... ... @@ -319,18 +379,26 @@ EXTERNAL SOURCES:
319 379 :path: "../"
320 380  
321 381 SPEC CHECKSUMS:
322   - CNLiveAVCamera: 7f3eba8eb1827f6e7a5047b0bb9f9f0bf19d1451
  382 + AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
  383 + CNLiveAVCamera: bad4d78fa537222e3e0fcc31b19e4930de634104
323 384 CNLiveBaseKit: 09a97c3411a91270fb68bfe20a1df2cdbcd2c524
324   - CNLiveCommonCategory: 57cb8422ccf17ba5cc8fffe76851fa828c367d06
325   - CNLiveCoreMediator: 0b76225bcbbf99427065545e2a7616092ddc8758
326   - CNLiveDisease: 39bbf8f961684fe70f04ca69111a1b9bdcedc498
  385 + CNLiveBusinessTools: b857e84e14bc733bf06d75a058aa703377dfafe0
  386 + CNLiveCommonCategory: 4d061e148d1d85f0fafce51e5d255a517c951210
  387 + CNLiveCommonClass: c60e0443c5b3beaa333d3e51e165c45f5462a241
  388 + CNLiveCoreMediator: 964e2d5ea765d4b1137ff3e8fc72f83bbdf3bb74
  389 + CNLiveCoreMediator_ModuleDiseaseAction: 8c0efd14e4107995ba961d139796d9c411c97911
  390 + CNLiveDisease: 21a578262c766dc1c7ebbb550b3b761239a41314
  391 + CNLiveEnvironmentConfiguration: 732c15a6cb3e33190cffbd14d3d66572e7ea35b1
327 392 CNLiveImagePickerController: 2be3ac0a75563f5945101ee6e0a787ad2fc15549
  393 + CNLiveRequestBastKit: 4922b3ef5db96e61e56cabf951db72f5b25ed748
  394 + CNLiveTripartiteManagement: 5fdbdfb7472654e93e3b7dae90cc2b8c679811f8
  395 + CNLiveUserManagement: b0f28a8506d664af5df59af979c61cea9e5ce0e2
328 396 FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31
329 397 Masonry: 7c429b56da9d4ee0bbb3ed77a5ea710d6a5df39e
330 398 MJExtension: 19bc33ce2eee2d319760f5622562cf581a6ff756
331   - QMUIKit: 33959d093f48bb64f754ad696c310887a0768c49
332   - SDWebImage: c5594f1a19c48d526d321e548902b56b479cd508
  399 + QMUIKit: d8e5ce25b33d78020fdc504f3762e197a61b9640
  400 + SDWebImage: 3f3f0c02f09798048c47a5ed0a13f17b063572d8
333 401  
334   -PODFILE CHECKSUM: 31f3a02ae28a4e7c45ea480d7911df763de8f06d
  402 +PODFILE CHECKSUM: 5a155cc771b283b2aa6d92652b809b0580e3632e
335 403  
336 404 COCOAPODS: 1.5.3
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSDataExtension/NSData+Common.m
... ... @@ -42,58 +42,58 @@ static unsigned char base64EncodeLookup[256] =
42 42  
43 43 void *NewBase64Decode(const char *inputBuffer, size_t length, size_t *outputLength)
44 44 {
45   - if (length == (size_t)-1)
46   - {
47   - length = strlen(inputBuffer);
48   - }
49   -
50   - size_t outputBufferSize =
  45 + if (length == (size_t)-1)
  46 + {
  47 + length = strlen(inputBuffer);
  48 + }
  49 +
  50 + size_t outputBufferSize =
51 51 ((length+BASE64_UNIT_SIZE-1) / BASE64_UNIT_SIZE) * BINARY_UNIT_SIZE;
52   - unsigned char *outputBuffer = (unsigned char *)malloc(outputBufferSize);
53   -
54   - size_t i = 0;
55   - size_t j = 0;
56   - while (i < length)
57   - {
58   - //
59   - // Accumulate 4 valid characters (ignore everything else)
60   - //
61   - unsigned char accumulated[BASE64_UNIT_SIZE];
62   - size_t accumulateIndex = 0;
63   - while (i < length)
64   - {
65   - unsigned char decode = base64EncodeLookup[inputBuffer[i++]];
66   - if (decode != xx)
67   - {
68   - accumulated[accumulateIndex] = decode;
69   - accumulateIndex++;
70   -
71   - if (accumulateIndex == BASE64_UNIT_SIZE)
72   - {
73   - break;
74   - }
75   - }
76   - }
77   -
78   - //
79   - // Store the 6 bits from each of the 4 characters as 3 bytes
80   - //
81   - // (Uses improved bounds checking suggested by Alexandre Colucci)
82   - //
83   - if(accumulateIndex >= 2)
84   - outputBuffer[j] = (unsigned char)(accumulated[0] << 2) | (accumulated[1] >> 4);
85   - if(accumulateIndex >= 3)
86   - outputBuffer[j + 1] = (unsigned char)(accumulated[1] << 4) | (accumulated[2] >> 2);
87   - if(accumulateIndex >= 4)
88   - outputBuffer[j + 2] = (unsigned char)(accumulated[2] << 6) | accumulated[3];
89   - j += accumulateIndex - 1;
90   - }
91   -
92   - if (outputLength)
93   - {
94   - *outputLength = j;
95   - }
96   - return outputBuffer;
  52 + unsigned char *outputBuffer = (unsigned char *)malloc(outputBufferSize);
  53 +
  54 + size_t i = 0;
  55 + size_t j = 0;
  56 + while (i < length)
  57 + {
  58 + //
  59 + // Accumulate 4 valid characters (ignore everything else)
  60 + //
  61 + unsigned char accumulated[BASE64_UNIT_SIZE];
  62 + size_t accumulateIndex = 0;
  63 + while (i < length)
  64 + {
  65 + unsigned char decode = base64EncodeLookup[inputBuffer[i++]];
  66 + if (decode != xx)
  67 + {
  68 + accumulated[accumulateIndex] = decode;
  69 + accumulateIndex++;
  70 +
  71 + if (accumulateIndex == BASE64_UNIT_SIZE)
  72 + {
  73 + break;
  74 + }
  75 + }
  76 + }
  77 +
  78 + //
  79 + // Store the 6 bits from each of the 4 characters as 3 bytes
  80 + //
  81 + // (Uses improved bounds checking suggested by Alexandre Colucci)
  82 + //
  83 + if(accumulateIndex >= 2)
  84 + outputBuffer[j] = (unsigned char)(accumulated[0] << 2) | (accumulated[1] >> 4);
  85 + if(accumulateIndex >= 3)
  86 + outputBuffer[j + 1] = (unsigned char)(accumulated[1] << 4) | (accumulated[2] >> 2);
  87 + if(accumulateIndex >= 4)
  88 + outputBuffer[j + 2] = (unsigned char)(accumulated[2] << 6) | accumulated[3];
  89 + j += accumulateIndex - 1;
  90 + }
  91 +
  92 + if (outputLength)
  93 + {
  94 + *outputLength = j;
  95 + }
  96 + return outputBuffer;
97 97 }
98 98  
99 99 //
... ... @@ -103,120 +103,120 @@ void *NewBase64Decode(const char *inputBuffer, size_t length, size_t *outputLeng
103 103 // output buffer.
104 104 //
105 105 // inputBuffer - the source data for the encode
106   -// length - the length of the input in bytes
  106 +// length - the length of the input in bytes
107 107 // separateLines - if zero, no CR/LF characters will be added. Otherwise
108   -// a CR/LF pair will be added every 64 encoded chars.
109   -// outputLength - if not-NULL, on output will contain the encoded length
110   -// (not including terminating 0 char)
  108 +// a CR/LF pair will be added every 64 encoded chars.
  109 +// outputLength - if not-NULL, on output will contain the encoded length
  110 +// (not including terminating 0 char)
111 111 //
112 112 // returns the encoded buffer. Must be free'd by caller. Length is given by
113   -// outputLength.
  113 +// outputLength.
114 114 //
115 115 char *NewBase64Encode(const void *buffer, size_t length, bool separateLines, size_t *outputLength)
116 116 {
117   - const unsigned char *inputBuffer = (const unsigned char *)buffer;
118   -
  117 + const unsigned char *inputBuffer = (const unsigned char *)buffer;
  118 +
119 119 #define MAX_NUM_PADDING_CHARS 2
120 120 #define OUTPUT_LINE_LENGTH 64
121 121 #define INPUT_LINE_LENGTH ((OUTPUT_LINE_LENGTH / BASE64_UNIT_SIZE) * BINARY_UNIT_SIZE)
122 122 #define CR_LF_SIZE 2
123   -
124   - //
125   - // Byte accurate calculation of final buffer size
126   - //
127   - size_t outputBufferSize =
  123 +
  124 + //
  125 + // Byte accurate calculation of final buffer size
  126 + //
  127 + size_t outputBufferSize =
128 128 ((length / BINARY_UNIT_SIZE)
129 129 + ((length % BINARY_UNIT_SIZE) ? 1 : 0))
130 130 * BASE64_UNIT_SIZE;
131   - if (separateLines)
132   - {
133   - outputBufferSize +=
  131 + if (separateLines)
  132 + {
  133 + outputBufferSize +=
134 134 (outputBufferSize / OUTPUT_LINE_LENGTH) * CR_LF_SIZE;
135   - }
136   -
137   - //
138   - // Include space for a terminating zero
139   - //
140   - outputBufferSize += 1;
  135 + }
141 136  
142   - //
143   - // Allocate the output buffer
144   - //
145   - char *outputBuffer = (char *)malloc(outputBufferSize);
146   - if (!outputBuffer)
147   - {
148   - return NULL;
149   - }
  137 + //
  138 + // Include space for a terminating zero
  139 + //
  140 + outputBufferSize += 1;
150 141  
151   - size_t i = 0;
152   - size_t j = 0;
153   - const size_t lineLength = separateLines ? INPUT_LINE_LENGTH : length;
154   - size_t lineEnd = lineLength;
155   -
156   - while (true)
157   - {
158   - if (lineEnd > length)
159   - {
160   - lineEnd = length;
161   - }
  142 + //
  143 + // Allocate the output buffer
  144 + //
  145 + char *outputBuffer = (char *)malloc(outputBufferSize);
  146 + if (!outputBuffer)
  147 + {
  148 + return NULL;
  149 + }
  150 +
  151 + size_t i = 0;
  152 + size_t j = 0;
  153 + const size_t lineLength = separateLines ? INPUT_LINE_LENGTH : length;
  154 + size_t lineEnd = lineLength;
  155 +
  156 + while (true)
  157 + {
  158 + if (lineEnd > length)
  159 + {
  160 + lineEnd = length;
  161 + }
162 162  
163   - for (; i + BINARY_UNIT_SIZE - 1 < lineEnd; i += BINARY_UNIT_SIZE)
164   - {
165   - //
166   - // Inner loop: turn 48 bytes into 64 base64 characters
167   - //
168   - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
169   - outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i] & 0x03) << 4)
  163 + for (; i + BINARY_UNIT_SIZE - 1 < lineEnd; i += BINARY_UNIT_SIZE)
  164 + {
  165 + //
  166 + // Inner loop: turn 48 bytes into 64 base64 characters
  167 + //
  168 + outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
  169 + outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i] & 0x03) << 4)
170 170 | ((inputBuffer[i + 1] & 0xF0) >> 4)];
171   - outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i + 1] & 0x0F) << 2)
  171 + outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i + 1] & 0x0F) << 2)
172 172 | ((inputBuffer[i + 2] & 0xC0) >> 6)];
173   - outputBuffer[j++] = (char)base64EncodeLookup[inputBuffer[i + 2] & 0x3F];
174   - }
175   -
176   - if (lineEnd == length)
177   - {
178   - break;
179   - }
180   -
181   - //
182   - // Add the newline
183   - //
184   - outputBuffer[j++] = '\r';
185   - outputBuffer[j++] = '\n';
186   - lineEnd += lineLength;
187   - }
188   -
189   - if (i + 1 < length)
190   - {
191   - //
192   - // Handle the single '=' case
193   - //
194   - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
195   - outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i] & 0x03) << 4)
  173 + outputBuffer[j++] = (char)base64EncodeLookup[inputBuffer[i + 2] & 0x3F];
  174 + }
  175 +
  176 + if (lineEnd == length)
  177 + {
  178 + break;
  179 + }
  180 +
  181 + //
  182 + // Add the newline
  183 + //
  184 + outputBuffer[j++] = '\r';
  185 + outputBuffer[j++] = '\n';
  186 + lineEnd += lineLength;
  187 + }
  188 +
  189 + if (i + 1 < length)
  190 + {
  191 + //
  192 + // Handle the single '=' case
  193 + //
  194 + outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
  195 + outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i] & 0x03) << 4)
196 196 | ((inputBuffer[i + 1] & 0xF0) >> 4)];
197   - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i + 1] & 0x0F) << 2];
198   - outputBuffer[j++] = '=';
199   - }
200   - else if (i < length)
201   - {
202   - //
203   - // Handle the double '=' case
204   - //
205   - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
206   - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0x03) << 4];
207   - outputBuffer[j++] = '=';
208   - outputBuffer[j++] = '=';
209   - }
210   - outputBuffer[j] = 0;
211   -
212   - //
213   - // Set the output length and return the buffer
214   - //
215   - if (outputLength)
216   - {
217   - *outputLength = j;
218   - }
219   - return outputBuffer;
  197 + outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i + 1] & 0x0F) << 2];
  198 + outputBuffer[j++] = '=';
  199 + }
  200 + else if (i < length)
  201 + {
  202 + //
  203 + // Handle the double '=' case
  204 + //
  205 + outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
  206 + outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0x03) << 4];
  207 + outputBuffer[j++] = '=';
  208 + outputBuffer[j++] = '=';
  209 + }
  210 + outputBuffer[j] = 0;
  211 +
  212 + //
  213 + // Set the output length and return the buffer
  214 + //
  215 + if (outputLength)
  216 + {
  217 + *outputLength = j;
  218 + }
  219 + return outputBuffer;
220 220 }
221 221  
222 222  
... ... @@ -225,25 +225,25 @@ char *NewBase64Encode(const void *buffer, size_t length, bool separateLines, siz
225 225  
226 226 + (NSData *)dataFromBase64String:(NSString *)aString
227 227 {
228   - NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
229   - size_t outputLength;
230   - void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength);
231   - NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength];
232   - free(outputBuffer);
233   - return result;
  228 + NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
  229 + size_t outputLength;
  230 + void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength);
  231 + NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength];
  232 + free(outputBuffer);
  233 + return result;
234 234 }
235 235  
236 236 - (NSString *)base64EncodedString
237 237 {
238   - size_t outputLength = 0;
239   - char *outputBuffer =
  238 + size_t outputLength = 0;
  239 + char *outputBuffer =
240 240 NewBase64Encode([self bytes], [self length], false, &outputLength);
241   -
242   -
243   - NSString *result = [[NSString alloc] initWithBytes:outputBuffer length:outputLength encoding:NSASCIIStringEncoding];
244   -
245   - free(outputBuffer);
246   - return result;
  241 +
  242 +
  243 + NSString *result = [[NSString alloc] initWithBytes:outputBuffer length:outputLength encoding:NSASCIIStringEncoding];
  244 +
  245 + free(outputBuffer);
  246 + return result;
247 247 }
248 248  
249 249  
... ... @@ -257,15 +257,15 @@ char *NewBase64Encode(const void *buffer, size_t length, bool separateLines, siz
257 257 */
258 258  
259 259 - (NSString *)md5Hash {
260   - unsigned char result[CC_MD5_DIGEST_LENGTH];
261   - CC_MD5([self bytes], (CC_LONG)[self length], result);
262   -
263   - return [NSString stringWithFormat:
264   - @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
265   - result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7],
266   - result[8], result[9], result[10], result[11], result[12], result[13], result[14],
267   - result[15]
268   - ];
  260 + unsigned char result[CC_MD5_DIGEST_LENGTH];
  261 + CC_MD5([self bytes], (CC_LONG)[self length], result);
  262 +
  263 + return [NSString stringWithFormat:
  264 + @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
  265 + result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7],
  266 + result[8], result[9], result[10], result[11], result[12], result[13], result[14],
  267 + result[15]
  268 + ];
269 269 }
270 270  
271 271  
... ... @@ -276,15 +276,15 @@ char *NewBase64Encode(const void *buffer, size_t length, bool separateLines, siz
276 276 * @returns The SHA1 hash of this data.
277 277 */
278 278 - (NSString *)sha1Hash {
279   - unsigned char result[CC_SHA1_DIGEST_LENGTH];
280   - CC_SHA1([self bytes], (CC_LONG)[self length], result);
281   -
282   - return [NSString stringWithFormat:
283   - @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
284   - result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7],
285   - result[8], result[9], result[10], result[11], result[12], result[13], result[14],
286   - result[15], result[16], result[17], result[18], result[19]
287   - ];
  279 + unsigned char result[CC_SHA1_DIGEST_LENGTH];
  280 + CC_SHA1([self bytes], (CC_LONG)[self length], result);
  281 +
  282 + return [NSString stringWithFormat:
  283 + @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
  284 + result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7],
  285 + result[8], result[9], result[10], result[11], result[12], result[13], result[14],
  286 + result[15], result[16], result[17], result[18], result[19]
  287 + ];
288 288 }
289 289  
290 290  
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSDateExtension/NSDate+Common.h
... ... @@ -16,6 +16,8 @@
16 16  
17 17 - (NSString *)shortTimeTextOfDate;
18 18  
  19 +- (NSString *)shortTimeForLiveTextOfDate;
  20 +
19 21 - (NSString *)timeTextOfDate;
20 22  
21 23  
... ... @@ -23,4 +25,12 @@
23 25 + (NSDate *)dateFromString:(NSString *)string;
24 26 + (NSTimeInterval)pleaseInsertStarTime:(NSString *)starTime andInsertEndTime:(NSString *)endTime;
25 27  
  28 +/** 取得月-日 时:分 */
  29 ++ (NSString *)dateStrFromInt:(NSInteger)count;
  30 +
  31 ++ (double)getDateTimeSeconds:(NSDate *)date;
  32 +/*** 毫秒 ***/
  33 ++ (double)getDateTimeSecondsMS:(NSDate *)date;
  34 +
  35 +
26 36 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSDateExtension/NSDate+Common.m
... ... @@ -7,7 +7,6 @@
7 7 //
8 8  
9 9 #import "NSDate+Common.h"
10   -//#import "CNLiveDefinesHeader.h"
11 10  
12 11 @implementation NSDate (Common)
13 12  
... ... @@ -49,9 +48,29 @@
49 48 return YES;
50 49 }
51 50 return NO;
52   -
  51 +
  52 +}
  53 +- (NSString *)shortTimeForLiveTextOfDate
  54 +{
  55 +
  56 + NSString * tempString = @"";
  57 +
  58 + NSTimeInterval interval = fabsl([self timeIntervalSinceDate:[NSDate date]]);
  59 +
  60 + if (interval >= 0 && interval < 60) {
  61 + tempString = [NSString stringWithFormat:@"刚刚"];
  62 + }else if (interval >= 60 && interval < 60*60) {
  63 + tempString = [NSString stringWithFormat:@"%.0f分钟前",fabs(interval/60)];
  64 + }else if (interval >= 60*60 && interval < 24*60*60) {
  65 + tempString = [NSString stringWithFormat:@"%.0f小时前",fabs(interval/3600)];
  66 + }else if (interval >= 24*60*60 && interval < 2*24*60*60) {
  67 + tempString = @"昨天";
  68 + }else{
  69 + tempString = [NSString stringWithFormat:@"%.0f天前",floorf(interval/kDayTimeInterval)];
  70 + }
  71 +
  72 + return tempString;
53 73 }
54   -
55 74  
56 75 - (NSString *)shortTimeTextOfDate
57 76 {
... ... @@ -65,7 +84,7 @@
65 84 {
66 85 // 今天的消息
67 86 NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
68   - [dateFormat setDateFormat:@"aHH:mm"];
  87 + [dateFormat setDateFormat:@"ahh:mm"];
69 88 [dateFormat setAMSymbol:@"上午"];
70 89 [dateFormat setPMSymbol:@"下午"];
71 90 NSString *dateString = [dateFormat stringFromDate:date];
... ... @@ -124,7 +143,7 @@
124 143  
125 144 // 今天的消息
126 145 NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
127   - [dateFormat setDateFormat:@"aHH:mm"];
  146 + [dateFormat setDateFormat:@"ahh:mm"];
128 147 [dateFormat setAMSymbol:@"上午"];
129 148 [dateFormat setPMSymbol:@"下午"];
130 149 NSString *dateString = [dateFormat stringFromDate:date];
... ... @@ -187,7 +206,7 @@
187 206 //NSDate转NSString
188 207 NSString *currentDateString = [dateFormatter stringFromDate:date];
189 208 //输出currentDateString
190   -// NSLog(@"%@",currentDateString);
  209 + // NSLog(@"%@",currentDateString);
191 210 return currentDateString;
192 211 }
193 212  
... ... @@ -211,20 +230,60 @@
211 230 return time;
212 231 }
213 232  
214   -- (NSTimeInterval)pleaseInsertStarTimeo:(NSString *)time1 andInsertEndTime:(NSString *)time2{
  233 +- (void)pleaseInsertStarTimeo:(NSString *)time1 andInsertEndTime:(NSString *)time2{
215 234 // 1.将时间转换为date
216 235 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
217 236 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
218 237 NSDate *date1 = [formatter dateFromString:time1];
219 238 NSDate *date2 = [formatter dateFromString:time2];
220   - return date1.timeIntervalSince1970 - date2.timeIntervalSince1970;
221   -// // 2.创建日历
222   -// NSCalendar *calendar = [NSCalendar currentCalendar];
223   -// NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
224   -// // 3.利用日历对象比较两个时间的差值
225   -// NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0];
  239 + // 2.创建日历
  240 + NSCalendar *calendar = [NSCalendar currentCalendar];
  241 + NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
  242 + // 3.利用日历对象比较两个时间的差值
  243 + NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0];
226 244 // 4.输出结果
227   -// NSLog(@"两个时间相差%ld年%ld月%ld日%ld小时%ld分钟%ld秒", (long)[cmps year], (long)cmps.month, (long)cmps.day, (long)cmps.hour, (long)cmps.minute, (long)cmps.second);
  245 + NSLog(@"两个时间相差%ld年%ld月%ld日%ld小时%ld分钟%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);
  246 +}
  247 +
  248 ++ (NSString *)dateStrFromInt:(NSInteger)count {
  249 +
  250 + NSDate* date = [NSDate dateWithTimeIntervalSince1970:count/1000];//获取date
  251 + NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  252 + [formatter setDateFormat:@"yyyy"];
  253 + NSInteger year = [[formatter stringFromDate:date] integerValue];
  254 + NSLog(@"输出年 = %02ld",year);
  255 + [formatter setDateFormat:@"MM"];
  256 + NSInteger currentMonth = [[formatter stringFromDate:date]integerValue];
  257 + NSLog(@"输出月份 = %02ld",currentMonth);
  258 + [formatter setDateFormat:@"dd"];
  259 + NSInteger currentDay = [[formatter stringFromDate:date] integerValue];
  260 + NSLog(@"输出月份 = %02ld",currentDay);
  261 + [formatter setDateFormat:@"HH"];
  262 + NSInteger currentTime = [[formatter stringFromDate:date] integerValue];
  263 + NSLog(@"输出月份 = %02ld",currentTime);
  264 + [formatter setDateFormat:@"mm"];
  265 + NSInteger currentSeconds = [[formatter stringFromDate:date] integerValue];
  266 + NSLog(@"输出月份 = %02ld",currentSeconds);
  267 +
  268 + return [NSString stringWithFormat:@"%02ld-%02ld-%02ld %02ld:%02ld",year,currentMonth,currentDay,currentTime,currentSeconds];
  269 +}
  270 +
  271 ++ (double)getDateTimeSeconds:(NSDate *)date{
  272 +
  273 + NSTimeInterval interval = [date timeIntervalSince1970];
  274 + NSLog(@"转换的时间戳=%f",interval);
  275 + double totalMilliseconds = interval;
  276 + return totalMilliseconds;
  277 +
  278 +}
  279 +
  280 ++ (double)getDateTimeSecondsMS:(NSDate *)date{
  281 +
  282 + NSTimeInterval interval = [date timeIntervalSince1970];
  283 + NSLog(@"转换的时间戳=%f",interval);
  284 + double totalMilliseconds = interval;
  285 + return totalMilliseconds *1000;
  286 +
228 287 }
229 288  
230 289 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSDictionaryExtension/NSDictionary+Safety.h
... ... @@ -7,16 +7,15 @@
7 7 //
8 8  
9 9 #import <Foundation/Foundation.h>
10   -
  10 +//字典转json格式字符串
  11 +#ifndef CNLiveNSDictionaryDicToJson
  12 +#define CNLiveNSDictionaryDicToJson(dic) [NSDictionary dictionaryToJson:dic]
  13 +#endif
11 14 @interface NSDictionary (Safety)
12 15  
13 16 - (NSDictionary *)validatedDictionary;
14 17  
15   -//字典转json格式字符串:
16   -- (NSString *)dictionaryToJson;
17   -
18   -//- (NSDictionary *)addParameters;
19   -//
20   -//+ (NSDictionary *)CommonParameters;
  18 +//字典转json格式字符串
  19 ++ (NSString *)dictionaryToJson:(NSDictionary *)dic;
21 20  
22 21 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSDictionaryExtension/NSDictionary+Safety.m
... ... @@ -44,30 +44,10 @@
44 44 }
45 45  
46 46 //字典转json格式字符串:
47   -- (NSString *)dictionaryToJson
  47 ++ (NSString *)dictionaryToJson:(NSDictionary *)dic
48 48 {
49 49 NSError *parseError = nil;
50   - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&parseError];
  50 + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
51 51 return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
52 52 }
53   -
54   -//- (NSDictionary *)addParameters
55   -//{
56   -// if (![self isKindOfClass:[NSDictionary class]]) {
57   -// return self;
58   -// }
59   -// if (!self) {
60   -// return @{@"appid": AppId, @"plat": @"i", @"version": AppVersion};
61   -// } else {
62   -// NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithDictionary:self];
63   -// [dic addEntriesFromDictionary:@{@"appid": AppId, @"plat": @"i", @"version": AppVersion}];
64   -// return [[NSDictionary alloc] initWithDictionary:dic];
65   -// }
66   -//}
67   -//
68   -//+ (NSDictionary *)CommonParameters
69   -//{
70   -// return @{@"appid": AppId, @"plat": @"i", @"version": AppVersion};
71   -//}
72   -
73 53 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSObjectExtension/NSObject+KVOCategory.h
... ... @@ -9,7 +9,7 @@
9 9  
10 10  
11 11  
12   -#if kSupportNSObjectKVOCategory
  12 +//#if kSupportNSObjectKVOCategory
13 13 #import <Foundation/Foundation.h>
14 14  
15 15 @interface NSObject (KVOCategory)
... ... @@ -22,4 +22,4 @@
22 22 - (void)cancelObservedBy:(NSObject *)observer forKeyPaths:(NSArray *)keyPaths;
23 23  
24 24 @end
25   -#endif
  25 +//#endif
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSObjectExtension/NSObject+KVOCategory.m
... ... @@ -5,7 +5,7 @@
5 5 // Created by Alexi on 5/16/14.
6 6 // Copyright (c) 2014 Alexi. All rights reserved.
7 7 //
8   -#if kSupportNSObjectKVOCategory
  8 +//#if kSupportNSObjectKVOCategory
9 9 #import "NSObject+KVOCategory.h"
10 10  
11 11 @implementation NSObject (KVOCategory)
... ... @@ -38,4 +38,4 @@
38 38 }
39 39  
40 40 @end
41   -#endif
42 41 \ No newline at end of file
  42 +//#endif
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSStringExtension/NSString+Category.h
... ... @@ -6,6 +6,41 @@
6 6 //
7 7  
8 8 #import <Foundation/Foundation.h>
  9 +//获取字符串首字母(传入汉字字符串, 返回大写拼音首字母)
  10 +#ifndef CNLiveStringGetFirstLetter
  11 +#define CNLiveStringGetFirstLetter(string) [string getFirstLetterFromString]
  12 +#endif
  13 +
  14 +//正则表达式验证手机号
  15 +#ifndef CNLiveStringIsMobileNumber
  16 +#define CNLiveStringIsMobileNumber(string) [string isMobileNumber]
  17 +#endif
  18 +
  19 +//读取本地JSON文件
  20 +#ifndef CNLiveStringReadLocalJSONFile
  21 +#define CNLiveStringReadLocalJSONFile(string) [string readLocalFile]
  22 +#endif
  23 +
  24 +//获取汉字转成拼音字符串 通讯录模糊搜索 支持拼音检索 首字母 全拼 汉字
  25 +#ifndef CNLiveStringTransformToPinyin
  26 +#define CNLiveStringTransformToPinyin(string) [string transformToPinyin]
  27 +#endif
  28 +
  29 +//判断是否为纯数字
  30 +#ifndef CNLiveStringIsNumber
  31 +#define CNLiveStringIsNumber(string) [NSString isNum:string]
  32 +#endif
  33 +
  34 +#ifndef CNLiveStringSpecialSpaceCharactCers
  35 +#define CNLiveStringSpecialSpaceCharactCers [NSString getSpecialSpaceCharactCerS]
  36 +#endif
  37 +
  38 +#ifndef CNLiveStringgetLocalAppVersion
  39 +#define CNLiveStringgetLocalAppVersion [NSString getLocalAppVersion]
  40 +#endif
  41 +#ifndef CNLiveStringgetLocalAppBuildVersion
  42 +#define CNLiveStringgetLocalAppBuildVersion [NSString getLocalAppBuildVersion]
  43 +#endif
9 44  
10 45 NS_ASSUME_NONNULL_BEGIN
11 46  
... ... @@ -17,6 +52,7 @@ NS_ASSUME_NONNULL_BEGIN
17 52 //正则表达式验证手机号
18 53 - (BOOL)isMobileNumber;
19 54  
  55 +//读取本地JSON文件
20 56 - (id)readLocalFile;
21 57  
22 58 //获取汉字转成拼音字符串 通讯录模糊搜索 支持拼音检索 首字母 全拼 汉字
... ... @@ -24,6 +60,16 @@ NS_ASSUME_NONNULL_BEGIN
24 60  
25 61 //获取文件大大小
26 62 - (float)fileSizeAtPath;
  63 +
  64 +/** 判断是否为纯数字 */
  65 ++ (BOOL)isNum:(NSString *)checkedNumString;
  66 +
  67 +// 获取特殊空白字符
  68 ++ (NSString *)getSpecialSpaceCharactCerS;
  69 +//获取 bundle version短版本号
  70 ++ (NSString*)getLocalAppVersion;
  71 +// 获取 build version长版本号
  72 ++ (NSString*)getLocalAppBuildVersion;
27 73 @end
28 74  
29 75 NS_ASSUME_NONNULL_END
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSStringExtension/NSString+Category.m
... ... @@ -42,6 +42,7 @@
42 42 - (id)readLocalFile {
43 43 NSString *path = [[NSBundle mainBundle] pathForResource:self ofType:@"json"];
44 44 NSData *data = [[NSData alloc] initWithContentsOfFile:path];
  45 + if (data == nil)return nil;
45 46 return [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
46 47 }
47 48  
... ... @@ -93,4 +94,32 @@
93 94 return 0.0;
94 95 }
95 96 }
  97 +
  98 +/** 判断是否为纯数字 */
  99 ++ (BOOL)isNum:(NSString *)checkedNumString {
  100 + checkedNumString = [checkedNumString stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];
  101 + if(checkedNumString.length > 0) {
  102 + return NO;
  103 + }
  104 + return YES;
  105 +}
  106 +
  107 +#pragma mark 获取特殊空白字符
  108 ++ (NSString *)getSpecialSpaceCharactCerS{
  109 + int asciiCode = 8197;
  110 + NSString *string1 = [NSString stringWithFormat:@"%C", (unichar)asciiCode];
  111 + return string1;
  112 +}
  113 +
  114 +#pragma mark - 获取 bundle version短版本号
  115 ++ (NSString*)getLocalAppVersion
  116 +{
  117 + return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
  118 +}
  119 +
  120 +#pragma mark -获取 build version长版本号
  121 ++ (NSString*)getLocalAppBuildVersion
  122 +{
  123 + return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];//@"1.3.5.18.07.25.30";//
  124 +}
96 125 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSStringExtension/NSString+RegexCheck.m
... ... @@ -28,7 +28,7 @@
28 28 {
29 29 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
30 30 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
31   -// [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];
  31 + // [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];
32 32 NSTimeInterval oldTime = [[dateFormatter dateFromString:self] timeIntervalSince1970];
33 33 NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
34 34 return oldTime <= currentTime;
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSStringExtension/NSString+Size.h
... ... @@ -21,7 +21,4 @@
21 21  
22 22 - (CGSize)tt_sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode lineSpace:(CGFloat)lineSpace;
23 23  
24   -//规范字符串
25   --(NSString *)specificationString:(NSString *)string;
26   -
27 24 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSStringExtension/NSString+Size.m
... ... @@ -9,14 +9,7 @@
9 9 #import "NSString+Size.h"
10 10  
11 11 @implementation NSString (Size)
12   --(NSString *)specificationString:(NSString *)string
13   -{
14   -// NSString * tempString = nil;
15   -// for (int i=0; i<string.length; i++) {
16   -//
17   -// }
18   - return nil;
19   -}
  12 +
20 13 - (CGSize)tt_sizeWithFont:(UIFont *)font
21 14 {
22 15 CGSize textSize = [self sizeWithAttributes:@{NSFontAttributeName : font}];
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/NSStringExtension/NSString+UrlEncode.m
... ... @@ -60,3 +60,4 @@
60 60 }
61 61  
62 62 @end
  63 +
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIButtonExtension/UIButton+CNCountDownButton.h deleted 100644 → 0
1   -//
2   -// UIButton+CNCountDownButton.h
3   -// com.cnlive.pro.CNLiveNetAdd
4   -//
5   -// Created by 流诗语 on 2018/4/10.
6   -// Copyright © 2018年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface UIButton (CNCountDownButton)
12   -/**
13   - * 倒计时结束的回调
14   - */
15   -@property (nonatomic, copy) void(^buttonTimeStoppedCallback)(void);
16   -
17   -/**
18   - 设置倒计时的间隔和倒计时文案
19   -
20   - @param duration 倒计时时间
21   - @param format 可选,传nil默认为 @"%zd秒"
22   - */
23   -- (void)CountDownWithTimeInterval:(NSTimeInterval)duration
24   - countDownFormat:(NSString *)format;
25   -
26   -/**
27   - * invalidate timer
28   - */
29   -- (void)cancelTimer;
30   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIButtonExtension/UIButton+CNCountDownButton.m deleted 100644 → 0
1   -
2   -//
3   -// UIButton+CNCountDownButton.m
4   -// com.cnlive.pro.CNLiveNetAdd
5   -//
6   -// Created by 流诗语 on 2018/4/10.
7   -// Copyright © 2018年 cnlive. All rights reserved.
8   -//
9   -
10   -#import "UIButton+CNCountDownButton.h"
11   -#import <objc/runtime.h>
12   -
13   -@interface UIButton ()
14   -
15   -@property (nonatomic, assign) NSTimeInterval leaveTime;
16   -@property (nonatomic, copy) NSString *normalTitle;
17   -@property (nonatomic, copy) NSString *countDownFormat;
18   -@property (nonatomic, strong) dispatch_source_t timer;
19   -
20   -@end
21   -
22   -static NSString * const ktimer = @"timer";
23   -static NSString * const kleaveTime = @"leaveTime";
24   -static NSString * const kcountDownFormat = @"countDownFormat";
25   -static NSString * const kButtonTimeStoppedCallback = @"buttonTimeStoppedCallback";
26   -static NSString * const knormalTitle = @"normalTitle";
27   -
28   -@implementation UIButton (CNCountDownButton)
29   -- (void)setTimer:(dispatch_source_t)timer {
30   - [self willChangeValueForKey:ktimer];
31   - objc_setAssociatedObject(self, &ktimer,
32   - timer,
33   - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
34   - [self didChangeValueForKey:ktimer];
35   -}
36   -
37   -- (dispatch_source_t)timer {
38   - return objc_getAssociatedObject(self, &ktimer);
39   -}
40   -
41   -- (void)setLeaveTime:(NSTimeInterval)leaveTime {
42   - [self willChangeValueForKey:kleaveTime];
43   - objc_setAssociatedObject(self, &kleaveTime,
44   - @(leaveTime),
45   - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
46   - [self didChangeValueForKey:kleaveTime];
47   -}
48   -
49   -- (NSTimeInterval)leaveTime {
50   - return [objc_getAssociatedObject(self, &kleaveTime) doubleValue];
51   -}
52   -
53   -- (void)setCountDownFormat:(NSString *)countDownFormat {
54   - [self willChangeValueForKey:kcountDownFormat];
55   - objc_setAssociatedObject(self, &kcountDownFormat,
56   - countDownFormat,
57   - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
58   - [self didChangeValueForKey:kcountDownFormat];
59   -}
60   -
61   -- (NSString *)countDownFormat {
62   - return objc_getAssociatedObject(self, &kcountDownFormat);
63   -}
64   -
65   -- (void)setButtonTimeStoppedCallback:(void (^)(void))buttonTimeStoppedCallback {
66   - [self willChangeValueForKey:kButtonTimeStoppedCallback];
67   - objc_setAssociatedObject(self, &kButtonTimeStoppedCallback,
68   - buttonTimeStoppedCallback,
69   - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
70   - [self didChangeValueForKey:kButtonTimeStoppedCallback];
71   -}
72   -
73   -- (void (^)(void))buttonTimeStoppedCallback {
74   - return objc_getAssociatedObject(self, &kButtonTimeStoppedCallback);
75   -}
76   -
77   -- (void)setNormalTitle:(NSString *)normalTitle {
78   - [self willChangeValueForKey:knormalTitle];
79   - objc_setAssociatedObject(self, &knormalTitle,
80   - normalTitle,
81   - OBJC_ASSOCIATION_RETAIN_NONATOMIC);
82   - [self didChangeValueForKey:knormalTitle];
83   -}
84   -
85   -- (NSString *)normalTitle {
86   - return objc_getAssociatedObject(self, &knormalTitle);
87   -}
88   -
89   -#pragma mark - 设置函数
90   -
91   -- (void)CountDownWithTimeInterval:(NSTimeInterval)duration countDownFormat:(NSString *)format{
92   - if (!format){
93   - self.countDownFormat = @"%zd秒";
94   - } else {
95   - self.countDownFormat = format;
96   - }
97   - self.normalTitle = self.titleLabel.text;
98   - __block NSInteger timeOut = duration; //倒计时时间
99   - __weak typeof(self) weakSelf = self;
100   - dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
101   - self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
102   - dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
103   - dispatch_source_set_event_handler(self.timer, ^{
104   - if (timeOut <= 0) { // 倒计时结束,关闭
105   - [weakSelf cancelTimer];
106   - } else {
107   - NSString *title = [NSString stringWithFormat:weakSelf.countDownFormat,timeOut];
108   - dispatch_async(dispatch_get_main_queue(), ^{
109   - [weakSelf setTitle:title forState:UIControlStateNormal];
110   - });
111   - timeOut--;
112   - }
113   - });
114   - dispatch_resume(self.timer);
115   -}
116   -
117   -- (void)cancelTimer {
118   - if (self.timer == nil) return;
119   - dispatch_source_cancel(self.timer);
120   - self.timer = nil;
121   - dispatch_async(dispatch_get_main_queue(), ^{
122   - // 设置界面的按钮显示 根据自己需求设置
123   - [self setTitle:self.normalTitle forState:UIControlStateNormal];
124   - self.userInteractionEnabled = YES;
125   - if (self.buttonTimeStoppedCallback) { self.buttonTimeStoppedCallback(); }
126   - });
127   -}
128   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIButtonExtension/UIButton+createButton.h
... ... @@ -13,33 +13,6 @@
13 13 #pragma mark - public method
14 14  
15 15 /**
16   - 创建UIButton,圆角,边框宽度及颜色,文字及其颜色,字号,对齐方式
17   -
18   - @param title 文字
19   - @param titleColor 文字颜色
20   - @param labelFontSize 字体字号
21   - @param labelTextAlginment 文字对齐方式
22   - @param cornerRadius 圆角颁奖
23   - @param borderWidth 边框宽度
24   - @param borderColor 边框颜色
25   - @return 自定义的UIButton
26   - */
27   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize labelTextAlginment:(NSTextAlignment)labelTextAlginment cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor;
28   -
29   -/**
30   - 创建UIButton,圆角,边框宽度及颜色,文字及其颜色,字号
31   -
32   - @param title 文字
33   - @param titleColor 文字颜色
34   - @param labelFontSize 字体字号
35   - @param cornerRadius 圆角半径
36   - @param borderWidth 边框宽度
37   - @param borderColor 边框颜色
38   - @return 自定义的UIButton
39   - */
40   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor;
41   -
42   -/**
43 16 创建UIButton,文字及其颜色,字体字号
44 17  
45 18 @param title 文字
... ... @@ -48,95 +21,43 @@
48 21 @return 自定义的UIButton
49 22 */
50 23 + (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize;
51   -
52 24 /**
53   - 创建UIButton,背景颜色,圆角,边框宽度及颜色,文字,文字颜色
54   -
55   - @param title 文字
56   - @param titleColor 文字颜色
57   - @param cornerRadius 圆角半径
58   - @param borderWidth 边框宽度
59   - @param borderColor 边框颜色
60   - @param backgroundColor 背景颜色
61   - @return 自定义的UIButton
62   - */
63   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor backgroundColor:(UIColor * _Nullable)backgroundColor;
64   -
65   -/**
66   - 创建UIButton,高亮背景,圆角,边框颜色及宽度,文字及其颜色,字号,对齐方式
67   -
68   - @param title 文字
69   - @param titleColor 文字颜色
70   - @param labelFontSize 字体字号
71   - @param labelTextAlginment 文字对齐方式
72   - @param cornerRadius 圆角半径
73   - @param borderWidth 边框宽度
74   - @param borderColor 边框颜色
75   - @param backgroundImageHighlight 高亮状态下的背景图片
76   - @return 自定义的UIButton
77   - */
78   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize labelTextAlginment:(NSTextAlignment)labelTextAlginment cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor backgroundImageHighlight:(UIImage * _Nullable)backgroundImageHighlight;
79   -
80   -/**
81   - 创建UIButton,正常和高亮的背景图片,圆角半径,文字及其颜色,字号
82   -
83   - @param title 文字
84   - @param titleColor 文字颜色
85   - @param labelFontSize 字体字号
86   - @param cornerRadius 圆角半径
87   - @param backgroundImageNormal 正常状态下的背景图片
88   - @param backgroundImageHighlight 高亮状态下的背景图片
89   - @return 自定义的UIButton
  25 + 设置热区
90 26 */
91   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize cornerRadius:(CGFloat)cornerRadius backgroundImageNormal:(UIImage * _Nullable)backgroundImageNormal backgroundImageHighlight:(UIImage * _Nullable)backgroundImageHighlight;
  27 +@property (nonatomic, assign) UIEdgeInsets touchAreaInsets;
92 28  
93 29 /**
94   - 创建UIButton,正常状态下的图片,圆角半径
95   -
96   - @param imageNormal 正常状态下的图片
97   - @param cornerRadius 圆角半径
98   - @return 自定义的UIButton
99   - */
100   -+ (UIButton * _Nullable)buttonWithImageNormal:(UIImage * _Nullable)imageNormal cornerRadius:(CGFloat)cornerRadius;
  30 + 扩大点击范围
101 31  
102   -/**
103   - 创建UIButton,正常状态下的图片
104   -
105   - @param imageNormal 正常状态下的图片
106   - @return 自定义的UIButton
  32 + @param top top
  33 + @param right right
  34 + @param bottom bottom
  35 + @param left left
107 36 */
108   -+ (UIButton * _Nullable)buttonWithImageNormal:(UIImage * _Nullable)imageNormal;
  37 +- (void)setEnlargeEdgeWithTop:(CGFloat)top right:(CGFloat)right bottom:(CGFloat)bottom left:(CGFloat)left;
109 38  
110 39 /**
111   - 创建UIButton,正常和选中状态的图片
112   -
113   - @param imageNormal 正常状态下的图片
114   - @param imageSelected 选中状态下的图片
115   - @return 自定义的UIButton
  40 + * 倒计时结束的回调
116 41 */
117   -+ (UIButton * _Nullable)buttonWithImageNormal:(UIImage * _Nullable)imageNormal imageSelected:(UIImage * _Nullable)imageSelected;
  42 +@property (nonatomic, copy) void(^buttonTimeStoppedCallback)(void);
118 43  
119 44 /**
120   - 创建UIButton,正常和选中下背景图片
  45 + 设置倒计时的间隔和倒计时文案
121 46  
122   - @param backgroundImageNormal 正常状态下的背景图片
123   - @param backgroundImageSelected 选择状态下的背景图片
124   - @return 自定义的UIButton
  47 + @param duration 倒计时时间
  48 + @param format 可选,传nil默认为 @"%zd秒"
125 49 */
126   -+ (UIButton * _Nullable)buttonWithBackgroundImageNormal:(UIImage * _Nullable)backgroundImageNormal backgroundImageSelected:(UIImage * _Nullable)backgroundImageSelected;
  50 +- (void)CountDownWithTimeInterval:(NSTimeInterval)duration
  51 + countDownFormat:(NSString *)format;
127 52  
128 53 /**
129   - 设置热区
  54 + * invalidate timer
130 55 */
131   -@property (nonatomic, assign) UIEdgeInsets touchAreaInsets;
132   -
133   -/**
134   - 扩大点击范围
  56 +- (void)cancelTimer;
  57 +/**开始菊花框*/
  58 +- (void)startButtonActivityIndicatorView:(UIActivityIndicatorViewStyle)style;
135 59  
136   - @param top top
137   - @param right right
138   - @param bottom bottom
139   - @param left left
140   - */
141   -- (void)setEnlargeEdgeWithTop:(CGFloat)top right:(CGFloat)right bottom:(CGFloat)bottom left:(CGFloat)left;
  60 +/**停止菊花框旋转,内容需要重新赋值*/
  61 +- (void)endButtonActivityIndicatorView;
142 62 @end
  63 +
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIButtonExtension/UIButton+createButton.m
... ... @@ -17,7 +17,19 @@
17 17 #define DefaultCornerRadius 0
18 18 #define DefaultBorderWidth 0
19 19 #define DefaultBorderColor nil
20   -
  20 +static NSUInteger const indicatorViewTag = 9999;
  21 +static NSString * const ktimer = @"timer";
  22 +static NSString * const kleaveTime = @"leaveTime";
  23 +static NSString * const kcountDownFormat = @"countDownFormat";
  24 +static NSString * const kButtonTimeStoppedCallback = @"buttonTimeStoppedCallback";
  25 +static NSString * const knormalTitle = @"normalTitle";
  26 +
  27 +@interface UIButton ()
  28 +@property (nonatomic, assign) NSTimeInterval leaveTime;
  29 +@property (nonatomic, copy) NSString *normalTitle;
  30 +@property (nonatomic, copy) NSString *countDownFormat;
  31 +@property (nonatomic, strong) dispatch_source_t timer;
  32 +@end
21 33  
22 34  
23 35 @implementation UIButton (createButton)
... ... @@ -29,41 +41,8 @@ static char leftNameKey;
29 41 #pragma mark - public method
30 42  
31 43 /**
32   - 创建UIButton,圆角,边框宽度及颜色,文字及其颜色,字号,对齐方式
33   -
34   - @param title 文字
35   - @param titleColor 文字颜色
36   - @param labelFontSize 字体字号
37   - @param labelTextAlginment 文字对齐方式
38   - @param cornerRadius 圆角颁奖
39   - @param borderWidth 边框宽度
40   - @param borderColor 边框颜色
41   - @return 自定义的UIButton
42   - */
43   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize labelTextAlginment:(NSTextAlignment)labelTextAlginment cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor
44   -{
45   - return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:labelFontSize labelTextAlginment:labelTextAlginment cornerRadius:cornerRadius borderWidth:borderWidth borderColor:borderColor backgroundColor:DefaultBackgroundColor backgroundImageNormal:DefaultBackgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight: DefaultBackgroundImageHighlight];
46   -}
47   -
48   -/**
49   - 创建UIButton,圆角,边框宽度及颜色,文字及其颜色,字号
50   -
51   - @param title 文字
52   - @param titleColor 文字颜色
53   - @param labelFontSize 字体字号
54   - @param cornerRadius 圆角半径
55   - @param borderWidth 边框宽度
56   - @param borderColor 边框颜色
57   - @return 自定义的UIButton
58   - */
59   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor
60   -{
61   - return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:labelFontSize labelTextAlginment:DefaultTextAlignment cornerRadius:cornerRadius borderWidth:borderWidth borderColor:borderColor backgroundColor:DefaultBackgroundColor backgroundImageNormal:DefaultBackgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight: DefaultBackgroundImageHighlight];
62   -}
63   -
64   -/**
65 44 创建UIButton,文字及其颜色,字体字号
66   -
  45 +
67 46 @param title 文字
68 47 @param titleColor 文字颜色
69 48 @param labelFontSize 字体字号
... ... @@ -71,124 +50,12 @@ static char leftNameKey;
71 50 */
72 51 + (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize
73 52 {
74   - return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:labelFontSize labelTextAlginment:DefaultTextAlignment cornerRadius:DefaultCornerRadius borderWidth:DefaultBorderWidth borderColor:DefaultBorderColor backgroundColor:DefaultBackgroundColor backgroundImageNormal:DefaultBackgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight: DefaultBackgroundImageHighlight];
75   -}
76   -
77   -/**
78   - 创建UIButton,背景颜色,圆角,边框宽度及颜色,文字,文字颜色
79   -
80   - @param title 文字
81   - @param titleColor 文字颜色
82   - @param cornerRadius 圆角半径
83   - @param borderWidth 边框宽度
84   - @param borderColor 边框颜色
85   - @param backgroundColor 背景颜色
86   - @return 自定义的UIButton
87   - */
88   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor backgroundColor:(UIColor * _Nullable)backgroundColor
89   -{
90   - return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:DefaultSystemFontSize labelTextAlginment:DefaultTextAlignment cornerRadius:cornerRadius borderWidth:borderWidth borderColor:borderColor backgroundColor:backgroundColor backgroundImageNormal:DefaultBackgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight: DefaultBackgroundImageHighlight];
91   -}
92   -
93   -/**
94   - 创建UIButton,高亮背景,圆角,边框颜色及宽度,文字及其颜色,字号,对齐方式
95   -
96   - @param title 文字
97   - @param titleColor 文字颜色
98   - @param labelFontSize 字体字号
99   - @param labelTextAlginment 文字对齐方式
100   - @param cornerRadius 圆角半径
101   - @param borderWidth 边框宽度
102   - @param borderColor 边框颜色
103   - @param backgroundImageHighlight 高亮状态下的背景图片
104   - @return 自定义的UIButton
105   - */
106   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize labelTextAlginment:(NSTextAlignment)labelTextAlginment cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor * _Nullable)borderColor backgroundImageHighlight:(UIImage * _Nullable)backgroundImageHighlight
107   -{
108   - return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:labelFontSize labelTextAlginment:labelTextAlginment cornerRadius:cornerRadius borderWidth:borderWidth borderColor:borderColor backgroundColor:DefaultBackgroundColor backgroundImageNormal:DefaultBackgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight:backgroundImageHighlight];
109   -}
110   -
111   -/**
112   - 创建UIButton,正常和高亮的背景图片,圆角半径,文字及其颜色,字号
113   -
114   - @param title 文字
115   - @param titleColor 文字颜色
116   - @param labelFontSize 字体字号
117   - @param cornerRadius 圆角半径
118   - @param backgroundImageNormal 正常状态下的背景图片
119   - @param backgroundImageHighlight 高亮状态下的背景图片
120   - @return 自定义的UIButton
121   - */
122   -+ (UIButton * _Nullable)buttonWithTitle:(NSString * _Nullable)title titleColor:(UIColor * _Nullable)titleColor labelFontSize:(CGFloat)labelFontSize cornerRadius:(CGFloat)cornerRadius backgroundImageNormal:(UIImage * _Nullable)backgroundImageNormal backgroundImageHighlight:(UIImage * _Nullable)backgroundImageHighlight
123   -{
124   - return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:labelFontSize labelTextAlginment:DefaultTextAlignment cornerRadius:cornerRadius borderWidth:DefaultBorderWidth borderColor:DefaultBorderColor backgroundColor:DefaultBackgroundColor backgroundImageNormal:backgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight:backgroundImageHighlight];
125   -}
126   -
127   -/**
128   - 创建UIButton,正常状态下的图片,圆角半径
129   -
130   - @param imageNormal 正常状态下的图片
131   - @param cornerRadius 圆角半径
132   - @return 自定义的UIButton
133   - */
134   -+ (UIButton * _Nullable)buttonWithImageNormal:(UIImage * _Nullable)imageNormal cornerRadius:(CGFloat)cornerRadius
135   -{
136   - UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
137   - [button setImage:imageNormal forState:UIControlStateNormal];
138   - button.layer.cornerRadius = cornerRadius;
139   - button.clipsToBounds = YES;
140   - return button;
  53 + return [self createButtonWithTitle:title titleColor:titleColor labelFontSize:labelFontSize labelTextAlginment:DefaultTextAlignment cornerRadius:DefaultCornerRadius borderWidth:DefaultBorderWidth borderColor:DefaultBorderColor backgroundColor:DefaultBackgroundColor backgroundImageNormal:DefaultBackgroundImageNormal backgroundImageSelected:DefaultBackgroundImageSelected backgroundImageHighlight: DefaultBackgroundImageHighlight];
141 54 }
142 55  
143 56 /**
144   - 创建UIButton,正常状态下的图片
145   -
146   - @param imageNormal 正常状态下的图片
147   - @return 自定义的UIButton
148   - */
149   -+ (UIButton * _Nullable)buttonWithImageNormal:(UIImage * _Nullable)imageNormal
150   -{
151   - UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
152   - [button setImage:imageNormal forState:UIControlStateNormal];
153   - return button;
154   -}
155   -
156   -/**
157   - 创建UIButton,正常和选中状态的图片
158   -
159   - @param imageNormal 正常状态下的图片
160   - @param imageSelected 选中状态下的图片
161   - @return 自定义的UIButton
162   - */
163   -+ (UIButton * _Nullable)buttonWithImageNormal:(UIImage * _Nullable)imageNormal imageSelected:(UIImage * _Nullable)imageSelected
164   -{
165   - UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
166   - [button setImage:imageNormal forState:UIControlStateNormal];
167   - [button setImage:imageSelected forState:UIControlStateSelected];
168   - return button;
169   -}
170   -
171   -
172   -/**
173   - 创建UIButton,正常和选中下背景图片
174   -
175   - @param backgroundImageNormal 正常状态下的背景图片
176   - @param backgroundImageSelected 选择状态下的背景图片
177   - @return 自定义的UIButton
178   - */
179   -+ (UIButton * _Nullable)buttonWithBackgroundImageNormal:(UIImage * _Nullable)backgroundImageNormal backgroundImageSelected:(UIImage * _Nullable)backgroundImageSelected
180   -{
181   - UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
182   - [button setBackgroundImage:backgroundImageNormal forState:UIControlStateNormal];
183   - [button setBackgroundImage:backgroundImageSelected forState:UIControlStateSelected];
184   - return button;
185   -}
186   -
187   -#pragma mark - private method
188   -
189   -/**
190 57 创建一个自定义属性的UIButton
191   -
  58 +
192 59 @param title 文字
193 60 @param titleColor 文字颜色
194 61 @param labelFontSize 文字字号
... ... @@ -219,6 +86,7 @@ static char leftNameKey;
219 86 button.backgroundColor = backgroundColor;
220 87 return button;
221 88 }
  89 +#pragma mark -设置热区
222 90 - (UIEdgeInsets)touchAreaInsets
223 91 {
224 92 return [objc_getAssociatedObject(self, @selector(touchAreaInsets)) UIEdgeInsetsValue];
... ... @@ -248,4 +116,129 @@ static char leftNameKey;
248 116 objc_setAssociatedObject(self, &leftNameKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_COPY_NONATOMIC);
249 117 }
250 118  
  119 +
  120 +#pragma mark -倒计时相关方法
  121 +- (void)setTimer:(dispatch_source_t)timer {
  122 + [self willChangeValueForKey:ktimer];
  123 + objc_setAssociatedObject(self, &ktimer,
  124 + timer,
  125 + OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  126 + [self didChangeValueForKey:ktimer];
  127 +}
  128 +
  129 +- (dispatch_source_t)timer {
  130 + return objc_getAssociatedObject(self, &ktimer);
  131 +}
  132 +
  133 +- (void)setLeaveTime:(NSTimeInterval)leaveTime {
  134 + [self willChangeValueForKey:kleaveTime];
  135 + objc_setAssociatedObject(self, &kleaveTime,
  136 + @(leaveTime),
  137 + OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  138 + [self didChangeValueForKey:kleaveTime];
  139 +}
  140 +
  141 +- (NSTimeInterval)leaveTime {
  142 + return [objc_getAssociatedObject(self, &kleaveTime) doubleValue];
  143 +}
  144 +
  145 +- (void)setCountDownFormat:(NSString *)countDownFormat {
  146 + [self willChangeValueForKey:kcountDownFormat];
  147 + objc_setAssociatedObject(self, &kcountDownFormat,
  148 + countDownFormat,
  149 + OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  150 + [self didChangeValueForKey:kcountDownFormat];
  151 +}
  152 +
  153 +- (NSString *)countDownFormat {
  154 + return objc_getAssociatedObject(self, &kcountDownFormat);
  155 +}
  156 +
  157 +- (void)setButtonTimeStoppedCallback:(void (^)(void))buttonTimeStoppedCallback {
  158 + [self willChangeValueForKey:kButtonTimeStoppedCallback];
  159 + objc_setAssociatedObject(self, &kButtonTimeStoppedCallback,
  160 + buttonTimeStoppedCallback,
  161 + OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  162 + [self didChangeValueForKey:kButtonTimeStoppedCallback];
  163 +}
  164 +
  165 +- (void (^)(void))buttonTimeStoppedCallback {
  166 + return objc_getAssociatedObject(self, &kButtonTimeStoppedCallback);
  167 +}
  168 +
  169 +- (void)setNormalTitle:(NSString *)normalTitle {
  170 + [self willChangeValueForKey:knormalTitle];
  171 + objc_setAssociatedObject(self, &knormalTitle,
  172 + normalTitle,
  173 + OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  174 + [self didChangeValueForKey:knormalTitle];
  175 +}
  176 +
  177 +- (NSString *)normalTitle {
  178 + return objc_getAssociatedObject(self, &knormalTitle);
  179 +}
  180 +
  181 +#pragma mark - 设置函数
  182 +
  183 +- (void)CountDownWithTimeInterval:(NSTimeInterval)duration countDownFormat:(NSString *)format{
  184 + if (!format){
  185 + self.countDownFormat = @"%zd秒";
  186 + } else {
  187 + self.countDownFormat = format;
  188 + }
  189 + self.normalTitle = self.titleLabel.text;
  190 + __block NSInteger timeOut = duration; //倒计时时间
  191 + __weak typeof(self) weakSelf = self;
  192 + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  193 + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
  194 + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
  195 + dispatch_source_set_event_handler(self.timer, ^{
  196 + if (timeOut <= 0) { // 倒计时结束,关闭
  197 + [weakSelf cancelTimer];
  198 + } else {
  199 + NSString *title = [NSString stringWithFormat:weakSelf.countDownFormat,timeOut];
  200 + dispatch_async(dispatch_get_main_queue(), ^{
  201 + [weakSelf setTitle:title forState:UIControlStateNormal];
  202 + });
  203 + timeOut--;
  204 + }
  205 + });
  206 + dispatch_resume(self.timer);
  207 +}
  208 +
  209 +- (void)cancelTimer {
  210 + if (self.timer == nil) return;
  211 + dispatch_source_cancel(self.timer);
  212 + self.timer = nil;
  213 + dispatch_async(dispatch_get_main_queue(), ^{
  214 + // 设置界面的按钮显示 根据自己需求设置
  215 + [self setTitle:self.normalTitle forState:UIControlStateNormal];
  216 + self.userInteractionEnabled = YES;
  217 + if (self.buttonTimeStoppedCallback) { self.buttonTimeStoppedCallback(); }
  218 + });
  219 +}
  220 +- (void)startButtonActivityIndicatorView:(UIActivityIndicatorViewStyle)style
  221 +{
  222 + self.enabled = NO;
  223 + [self setTitle:@"" forState:UIControlStateNormal];
  224 + [self setTitle:@"" forState:UIControlStateHighlighted];
  225 + [self setImage:nil forState:UIControlStateNormal];
  226 + [self setImage:nil forState:UIControlStateHighlighted];
  227 + UIActivityIndicatorView *indicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:style];
  228 +
  229 + indicatorView.frame = CGRectMake((self.bounds.size.width - 20)/2, self.bounds.size.height/2 - 10, 20, 20);
  230 + indicatorView.tag = indicatorViewTag;
  231 + indicatorView.hidesWhenStopped = YES;
  232 + [self addSubview:indicatorView];
  233 + [indicatorView startAnimating];
  234 +}
  235 +
  236 +- (void)endButtonActivityIndicatorView
  237 +{
  238 + UIActivityIndicatorView *indicatorView = (UIActivityIndicatorView *)[self viewWithTag:indicatorViewTag];
  239 + [indicatorView removeFromSuperview];
  240 + self.enabled = YES;
  241 + self.backgroundColor = [self.backgroundColor colorWithAlphaComponent:0.4*(5/2)];
  242 +}
  243 +
251 244 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIColorExtension/UIColor+CNLiveExtension.h
... ... @@ -7,14 +7,22 @@
7 7 //
8 8  
9 9 #import <UIKit/UIKit.h>
  10 +//十六进制颜色
  11 +#ifndef CNLiveColorWithHexString
  12 +#define CNLiveColorWithHexString(string) [UIColor cnlive_colorWithHexString:string]
  13 +#endif
10 14  
  15 +//十六进制颜色及alpha
  16 +#ifndef CNLiveColorWithHexStringAlpha
  17 +#define CNLiveColorWithHexStringAlpha(string,alpha) [UIColor cnlive_colorWithHexString:string andAlpha:alpha]
  18 +#endif
11 19 @interface UIColor (CNLiveExtension)
12 20  
13 21 - (CGFloat)cnlive_alpha;
14 22  
15 23 //十六进制颜色
16   -+ (UIColor *)colorWithHexString:(NSString *)color;
  24 ++ (UIColor *)cnlive_colorWithHexString:(NSString *)color;
17 25  
18 26 //十六进制颜色,alpha
19   -+ (UIColor *) colorWithHexString:(NSString *)color andAlpha:(CGFloat )alpha;
  27 ++ (UIColor *)cnlive_colorWithHexString:(NSString *)color andAlpha:(CGFloat )alpha;
20 28 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIColorExtension/UIColor+CNLiveExtension.m
... ... @@ -18,13 +18,13 @@
18 18 }
19 19  
20 20 //十六进制颜色
21   -+ (UIColor *)colorWithHexString:(NSString *)color
  21 ++ (UIColor *)cnlive_colorWithHexString:(NSString *)color
22 22 {
23   - return [self colorWithHexString:color andAlpha:1.0f];
  23 + return [self cnlive_colorWithHexString:color andAlpha:1.0f];
24 24 }
25 25  
26 26 //十六进制颜色,alpha
27   -+ (UIColor *) colorWithHexString:(NSString *)color andAlpha:(CGFloat )alpha
  27 ++ (UIColor *)cnlive_colorWithHexString:(NSString *)color andAlpha:(CGFloat )alpha
28 28 {
29 29 NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
30 30  
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageExtension/UIImage+CNLiveAdd.h
... ... @@ -7,22 +7,26 @@
7 7 //
8 8  
9 9  
  10 +#import <UIKit/UIKit.h>
10 11  
  12 +//颜色转背景图片
  13 +#ifndef CNLiveUIImageWithColor
  14 +#define CNLiveUIImageWithColor(color) [UIImage imageWithColor:color]
  15 +#endif
11 16 NS_ASSUME_NONNULL_BEGIN
12 17  
13 18 @interface UIImage (CNLiveAdd)
14 19  
15   -
16 20 /**
17 21 重新设置size
18   -
  22 +
19 23 @param size 目标size
20 24 @return 目标size的UIImage对象
21 25 */
22 26 - (UIImage *)cnlive_imageByResizeToSize:(CGSize)size;
23 27  
24 28 //颜色转背景图片
25   -- (UIImage *)imageWithColor:(UIColor *)color;
  29 ++ (UIImage *)imageWithColor:(UIColor *)color;
26 30 @end
27 31  
28 32 NS_ASSUME_NONNULL_END
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageExtension/UIImage+CNLiveAdd.m
... ... @@ -20,7 +20,7 @@
20 20 }
21 21  
22 22 //颜色转背景图片
23   -- (UIImage *)imageWithColor:(UIColor *)color {
  23 ++ (UIImage *)imageWithColor:(UIColor *)color {
24 24 CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
25 25 UIGraphicsBeginImageContext(rect.size);
26 26 CGContextRef context = UIGraphicsGetCurrentContext();
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageExtension/UIImage+ImageEffect.m
... ... @@ -9,7 +9,7 @@
9 9 #import "UIImage+ImageEffect.h"
10 10  
11 11 #import <Accelerate/Accelerate.h>
12   -//#import "CNLiveDefinesHeader.h"
  12 +
13 13 @implementation UIImage (ImageEffect)
14 14  
15 15 - (UIImage *)applyLightEffect
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageExtension/UIImage+ScaleImageSize.h
... ... @@ -10,5 +10,5 @@
10 10  
11 11 @interface UIImage (ScaleImageSize)
12 12 -(UIImage*)scaleToSize:(CGSize)size;
13   -
  13 ++ (UIImage *)createImageWithColor:(UIColor *)color;
14 14 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageExtension/UIImage+ScaleImageSize.m
... ... @@ -28,4 +28,21 @@
28 28 // 返回新的改变大小后的图片
29 29 return scaledImage;
30 30 }
  31 +// 颜色转为图片
  32 ++ (UIImage *)createImageWithColor:(UIColor *)color {
  33 + CGRect rect = CGRectMake(0, 0, 1.0f, 1.0f);
  34 + // 开启位图上下文
  35 + UIGraphicsBeginImageContext(rect.size);
  36 + // 开启上下文
  37 + CGContextRef ref = UIGraphicsGetCurrentContext();
  38 + // 使用color演示填充上下文
  39 + CGContextSetFillColorWithColor(ref, color.CGColor);
  40 + // 渲染上下文
  41 + CGContextFillRect(ref, rect);
  42 + // 从上下文中获取图片
  43 + UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  44 + // 结束上下文
  45 + UIGraphicsEndImageContext();
  46 + return image;
  47 +}
31 48 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageExtension/UIImage+zipData.m
... ... @@ -249,15 +249,15 @@
249 249 NSNumber * limitLength = [NSNumber numberWithInteger:19*1024*1024];
250 250 CGFloat scale = [limitLength floatValue]/ [dataLength floatValue];
251 251 scale = scale > 0.3 ? 0.3 : scale;
252   - data = UIImageJPEGRepresentation(sourceImage, scale);
  252 + data = UIImageJPEGRepresentation(newImage, scale);
253 253 }else if (data.length > 10*1024*1024){//10M<x<=19M
254   - data = UIImageJPEGRepresentation(sourceImage, 0.3);
  254 + data = UIImageJPEGRepresentation(newImage, 0.3);
255 255 }else if (data.length > 1*1024*1024){//1M<x<=10M
256   - data = UIImageJPEGRepresentation(sourceImage, 0.7);
  256 + data = UIImageJPEGRepresentation(newImage, 0.7);
257 257 }else if (data.length > 512*1024) {//0.5M<x<1M
258   - data = UIImageJPEGRepresentation(sourceImage, 0.8);
  258 + data = UIImageJPEGRepresentation(newImage, 0.8);
259 259 }else if (data.length > 102*1024) {//0.1M-0.5M
260   - data = UIImageJPEGRepresentation(sourceImage, 0.9);
  260 + data = UIImageJPEGRepresentation(newImage, 0.9);
261 261 }else{
262 262 //不压缩
263 263 }
... ... @@ -316,15 +316,15 @@
316 316 NSNumber * limitLength = [NSNumber numberWithInteger:19*1024*1024];
317 317 CGFloat scale = [limitLength floatValue]/ [dataLength floatValue];
318 318 scale = scale > 0.3 ? 0.3 : scale;
319   - data = UIImageJPEGRepresentation(sourceImage, scale);
  319 + data = UIImageJPEGRepresentation(newImage, scale);
320 320 }else if (data.length > 10*1024*1024){//10M<x<=19M
321   - data = UIImageJPEGRepresentation(sourceImage, 0.3);
  321 + data = UIImageJPEGRepresentation(newImage, 0.3);
322 322 }else if (data.length > 1*1024*1024){//1M<x<=10M
323   - data = UIImageJPEGRepresentation(sourceImage, 0.7);
  323 + data = UIImageJPEGRepresentation(newImage, 0.7);
324 324 }else if (data.length > 512*1024) {//0.5M<x<1M
325   - data = UIImageJPEGRepresentation(sourceImage, 0.8);
  325 + data = UIImageJPEGRepresentation(newImage, 0.8);
326 326 }else if (data.length > 102*1024) {//0.1M-0.5M
327   - data = UIImageJPEGRepresentation(sourceImage, 0.9);
  327 + data = UIImageJPEGRepresentation(newImage, 0.9);
328 328 }else{
329 329 //不压缩
330 330 }
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIImageViewExtension/UIImageView+ZXExtension.m
... ... @@ -10,7 +10,7 @@
10 10 #import "UIImageView+WebCache.h"
11 11 #import "UIImage+ZXExtension.h"
12 12  
13   -#define kDefaultUserCircleIcon [UIImage cnlive_imageWithColor:[UIColor grayColor] size:CGSizeMake(60, 60) cornerRadius:0]
  13 +#define kCNLiveDefaultUserCircleIcon [UIImage cnlive_imageWithColor:[UIColor grayColor] size:CGSizeMake(60, 60) cornerRadius:0]
14 14 /**
15 15 * weakSelf
16 16 */
... ... @@ -32,13 +32,13 @@
32 32  
33 33 - (void)zx_setRectHeader:(NSString *)url
34 34 {
35   - [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:kDefaultUserCircleIcon];
  35 + [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:kCNLiveDefaultUserCircleIcon];
36 36 }
37 37  
38 38 - (void)zx_setCircleHeader:(NSString *)url
39 39 {
40 40 weakself
41   - UIImage *placeholder = [kDefaultUserCircleIcon zx_circleImage];
  41 + UIImage *placeholder = [kCNLiveDefaultUserCircleIcon zx_circleImage];
42 42 [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:placeholder completed:
43 43 ^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
44 44 // 如果图片下载失败,就不做任何处理,按照默认的做法:会显示占位图片
... ... @@ -133,8 +133,8 @@
133 133 CGContextRef context = NULL;
134 134 CGColorSpaceRef colorSpace;
135 135 void * bitmapData;
136   - long bitmapByteCount;
137   - long bitmapBytesPerRow;
  136 + int bitmapByteCount;
  137 + int bitmapBytesPerRow;
138 138  
139 139 // Get image width, height. We'll use the entire image.
140 140 size_t pixelsWide = CGImageGetWidth(inImage);
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UILabelExtension/UILabel+InitMethod.m
... ... @@ -8,8 +8,6 @@
8 8  
9 9 #import "UILabel+InitMethod.h"
10 10  
11   -//#import "CNLiveDefinesHeader.h"
12   -
13 11 @implementation UILabel (InitMethod)
14 12  
15 13 + (instancetype)label
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+CNGradienLayer.h deleted 100644 → 0
1   -//
2   -// UIView+CNGradienLayer.h
3   -// CNLiveNetAdd
4   -//
5   -// Created by cnliveJunBo on 2018/5/25.
6   -// Copyright © 2018年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface UIView (CNGradienLayer)
12   -
13   -- (void)setupGradient;
14   -
15   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+CNGradienLayer.m deleted 100644 → 0
1   -//
2   -// UIView+CNGradienLayer.m
3   -// CNLiveNetAdd
4   -//
5   -// Created by cnliveJunBo on 2018/5/25.
6   -// Copyright © 2018年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "UIView+CNGradienLayer.h"
10   -
11   -@implementation UIView (CNGradienLayer)
12   -
13   -- (void)setupGradient {
14   -
15   - // self.alpha = 0.65;
16   - CAGradientLayer *gradientLayer0 = [[CAGradientLayer alloc] init];
17   - gradientLayer0.cornerRadius = 5;
18   - gradientLayer0.frame = self.bounds;
19   - gradientLayer0.colors = @[
20   - (id)[UIColor colorWithRed:243.0f/255.0f green:246.0f/255.0f blue:248.0f/255.0f alpha:1.0f].CGColor,
21   - (id)[UIColor colorWithRed:249.0f/255.0f green:251.0f/255.0f blue:252.0f/255.0f alpha:1.0f].CGColor,
22   - (id)[UIColor colorWithRed:255.0f/255.0f green:255.0f/255.0f blue:255.0f/255.0f alpha:1.0f].CGColor];
23   - gradientLayer0.locations = @[@0, @0, @1];
24   - [gradientLayer0 setStartPoint:CGPointMake(1, 1)];
25   - [gradientLayer0 setEndPoint:CGPointMake(1, 0)];
26   -// [self.layer insertSublayer:gradientLayer0 atIndex:0];
27   - [self.layer addSublayer:gradientLayer0];
28   -}
29   -
30   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+CustomAutoLayout.m
... ... @@ -7,7 +7,7 @@
7 7 //
8 8  
9 9 #import "UIView+CustomAutoLayout.h"
10   -//#import "CNLiveDefinesHeader.h"
  10 +
11 11 @implementation UIView (CustomAutoLayout)
12 12  
13 13 - (UIView *)sameWith:(UIView *)brotherView
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+Effect.m
... ... @@ -30,14 +30,4 @@
30 30 [self insertSubview:effectView atIndex:0];
31 31 }
32 32  
33   -- (void)blurSelfAfterIOS7
34   -{
35   - UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
36   - effectView.autoresizesSubviews = YES;
37   - effectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
38   - effectView.alpha = 1;
39   -
40   - [self insertSubview:effectView atIndex:0];
41   -}
42   -
43 33 @end
... ...
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+Layout.h deleted 100644 → 0
1   -//
2   -// UIView+Layout.h
3   -// CommonLibrary
4   -//
5   -// Created by Alexi Chen on 2/28/13.
6   -// Copyright (c) 2013 AlexiChen. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface UIView (Layout)
12   -
13   -// 添加子控件
14   -- (void)addOwnViews;
15   -
16   -// 配置子控件参数
17   -- (void)configOwnViews;
18   -
19   -//- (void)configWith:(NSMutableDictionary *)jsonDic;
20   -
21   -// isAutoLayoutr返回YES时,使用此方法进行布局
22   -- (void)autoLayoutSubViews;
23   -
24   -// 是否使用自动布局
25   -- (BOOL)isAutoLayout;
26   -
27   -// 外部通过此功能进行设置
28   -// 只在布局时使用
29   -- (void)setFrameAndLayout:(CGRect)rect;
30   -
31   -// 对于一些自定义的UIView,在设置Frame后,如需要重新调整局的话
32   -// 作为所以控修改其自身内部子控件的入口
33   -// 所有的自定义View最好不要从initWithFrams里面进行设置其子View的frame,
34   -// 统一在些处进行设置
35   -- (void)relayoutFrameOfSubViews;
36   -
37   -- (void)addBottomLine:(CGRect)rect;
38   -
39   -- (void)addBottomLine:(UIColor *)color inRect:(CGRect)rect;
40   -
41   -@end
42   -
43   -@interface UIView (ShakeAnimation)
44   -
45   -// 左右shake
46   -- (void)shake;
47   -
48   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+Layout.m deleted 100644 → 0
1   -//
2   -// UIView+Layout.m
3   -// CommonLibrary
4   -//
5   -// Created by Alexi Chen on 2/28/13.
6   -// Copyright (c) 2013 AlexiChen. All rights reserved.
7   -//
8   -
9   -#import "UIView+Layout.h"
10   -//#import "CNLiveDefinesHeader.h"
11   -@implementation UIView (Layout)
12   -
13   -- (id)init
14   -{
15   - if (self = [self initWithFrame:CGRectZero]) {
16   -
17   - if (![self isAutoLayout])
18   - {
19   - [self addOwnViews];
20   - [self configOwnViews];
21   - }
22   - else
23   - {
24   - [self autoLayoutSubViews];
25   - }
26   -
27   - }
28   - return self;
29   -}
30   -
31   -- (BOOL)isAutoLayout
32   -{
33   - return NO;
34   -}
35   -
36   -- (void)autoLayoutSubViews
37   -{
38   -
39   -}
40   -
41   -- (void)addOwnViews
42   -{
43   - // 添加自己的控件
44   -}
45   -
46   -- (void)configOwnViews
47   -{
48   - // 初始化控件的值
49   -}
50   -
51   -//- (void)configWith:(NSMutableDictionary *)jsonDic
52   -//{
53   -//
54   -//}
55   -
56   -- (void)setFrameAndLayout:(CGRect)rect
57   -{
58   - self.frame = rect;
59   - if (self.bounds.size.width != 0 && self.bounds.size.height != 0)
60   - {
61   - [self relayoutFrameOfSubViews];
62   - }
63   -}
64   -- (void)relayoutFrameOfSubViews
65   -{
66   - // do nothing here
67   -}
68   -
69   -- (void)addBottomLine:(CGRect)rect
70   -{
71   - [self addBottomLine:[UIColor lightGrayColor] inRect:rect];
72   -}
73   -
74   -- (void)addBottomLine:(UIColor *)color inRect:(CGRect)rect
75   -{
76   - CGContextRef context = UIGraphicsGetCurrentContext();
77   - UIGraphicsPushContext(context);
78   -
79   - //Set the stroke (pen) color
80   - CGContextSetStrokeColorWithColor(context, color.CGColor);
81   - CGContextSetLineWidth(context, 1.0);
82   -
83   - CGContextBeginPath(context);
84   - CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect));
85   - CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect));
86   -
87   - CGContextStrokePath(context);
88   -
89   - UIGraphicsPopContext();
90   -}
91   -
92   -@end
93   -
94   -
95   -@implementation UIView (ShakeAnimation)
96   -
97   -- (void)shake
98   -{
99   - CGFloat t =4.0;
100   - CGAffineTransform translateRight = CGAffineTransformTranslate(CGAffineTransformIdentity, t, 0.0);
101   - CGAffineTransform translateLeft = CGAffineTransformTranslate(CGAffineTransformIdentity, -t, 0.0);
102   - self.transform = translateLeft;
103   - [UIView animateWithDuration:0.07 delay:0.0 options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat animations:^{
104   - [UIView setAnimationRepeatCount:2.0];
105   - self.transform = translateRight;
106   - } completion:^(BOOL finished) {
107   - if(finished)
108   - {
109   - [UIView animateWithDuration:0.05 delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
110   - self.transform =CGAffineTransformIdentity;
111   - } completion:NULL];
112   - }
113   - }];
114   -}
115   -
116   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+ModifyFrame.h deleted 100644 → 0
1   -//
2   -// UIView+ModifyFrame.h
3   -// CommonLibrary
4   -//
5   -// Created by Alexi on 14-2-21.
6   -// Copyright (c) 2014年 CommonLibrary. All rights reserved.
7   -//
8   -
9   -
10   -#import <UIKit/UIKit.h>
11   -
12   -@interface UIView (ModifyFrame)
13   -
14   -@property float x;
15   -@property float y;
16   -@property CGPoint origin;
17   -@property float width;
18   -@property float height;
19   -
20   -@property CGSize boundsSize;
21   -
22   -- (CGPoint)originRelativeToWindow;
23   -- (CGPoint)centerRelativeToWindow;
24   -
25   -@end
26   -
27   -@interface UIViewController (ModifyFrame)
28   -
29   -@property float x;
30   -@property float y;
31   -@property float width;
32   -@property float height;
33   -@property CGSize boundsSize;
34   -
35   -
36   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/ARC/UIViewExtension/UIView+ModifyFrame.m deleted 100644 → 0
1   -//
2   -// UIView+ModifyFrame.m
3   -// CommonLibrary
4   -//
5   -// Created by Alexi on 14-2-21.
6   -// Copyright (c) 2014年 CommonLibrary. All rights reserved.
7   -//
8   -#import "UIView+ModifyFrame.h"
9   -
10   -@implementation UIView (ModifyFrame)
11   -
12   -- (float)x
13   -{
14   - return self.frame.origin.x;
15   -}
16   -
17   -- (void)setX:(float)newX
18   -{
19   - CGRect frame = self.frame;
20   - frame.origin.x = newX;
21   - self.frame = frame;
22   -}
23   -
24   -- (float)y
25   -{
26   - return self.frame.origin.y;
27   -}
28   -
29   -- (void)setY:(float)newY
30   -{
31   - CGRect frame = self.frame;
32   - frame.origin.y = newY;
33   - self.frame = frame;
34   -}
35   -
36   -- (float)width
37   -{
38   - return self.frame.size.width;
39   -}
40   -
41   -- (void)setOrigin:(CGPoint)origin
42   -{
43   - self.x = origin.x;
44   - self.y = origin.y;
45   -}
46   -
47   -- (CGPoint)origin
48   -{
49   - return CGPointMake(self.x, self.y);
50   -}
51   -
52   -- (void)setWidth:(float)newWidth
53   -{
54   - CGRect frame = self.frame;
55   - frame.size.width = newWidth;
56   - self.frame = frame;
57   -}
58   -
59   -- (float)height
60   -{
61   - return self.frame.size.height;
62   -}
63   -
64   -- (void)setHeight:(float)newHeight
65   -{
66   - CGRect frame = self.frame;
67   - frame.size.height = newHeight;
68   - self.frame = frame;
69   -}
70   -
71   -- (CGSize)boundsSize
72   -{
73   - return self.bounds.size;
74   -}
75   -
76   -- (void)setBoundsSize:(CGSize)boundsSize
77   -{
78   - CGRect boundsRect = self.bounds;
79   - boundsRect.size.width = boundsSize.width;
80   - boundsRect.size.height = boundsSize.height;
81   - self.bounds = boundsRect;
82   -}
83   -
84   -
85   -- (CGPoint)originRelativeToWindow
86   -{
87   - CGPoint p = self.origin;
88   -
89   - UIView *superView = self.superview;
90   - while (superView) {
91   - p.x += superView.x;
92   - p.y += superView.y;
93   - superView = superView.superview;
94   - }
95   - return p;
96   -
97   -}
98   -- (CGPoint)centerRelativeToWindow
99   -{
100   - CGPoint p = CGPointMake(self.x + self.width/2, self.y + self.height/2);
101   -
102   - UIView *superView = self.superview;
103   - while (superView) {
104   - p.x += superView.x;
105   - p.y += superView.y;
106   - superView = superView.superview;
107   - }
108   - return p;
109   -}
110   -
111   -@end
112   -
113   -
114   -@implementation UIViewController (ModifyFrame)
115   -
116   -- (float)x
117   -{
118   - return self.view.x;
119   -}
120   -
121   -- (void)setX:(float)newX
122   -{
123   - self.view.x = newX;
124   -}
125   -
126   -- (float)y
127   -{
128   - return self.view.y;
129   -}
130   -
131   -- (void)setY:(float)newY
132   -{
133   - self.view.y = newY;
134   -}
135   -
136   -- (float)width
137   -{
138   - return self.view.width;
139   -}
140   -
141   -- (void)setWidth:(float)newWidth
142   -{
143   - self.view.width = newWidth;
144   -
145   -}
146   -
147   -- (float)height
148   -{
149   - return self.view.height;
150   -}
151   -
152   -- (void)setHeight:(float)newHeight
153   -{
154   - self.view.height = newHeight;
155   -}
156   -
157   -- (CGSize)boundsSize
158   -{
159   - return self.view.boundsSize;
160   -}
161   -
162   -- (void)setBoundsSize:(CGSize)boundsSize
163   -{
164   - self.view.boundsSize = boundsSize;
165   -}
166   -
167   -@end
Example/Pods/CNLiveCommonCategory/CNLiveCommonCategory/Classes/CNLiveCommonCategory.h
... ... @@ -33,14 +33,11 @@
33 33 #import "NSDate+Common.h"
34 34 #import "UIView+Glow.h"
35 35 #import "UIView+Effect.h"
36   -#import "UIView+Layout.h"
37   -#import "UIView+ModifyFrame.h"
  36 +#import "UIView+IMLayout.h"
38 37 #import "UIView+CaptureImage.h"
39   -#import "UIView+CNGradienLayer.h"
40 38 #import "UIView+RelativeCoordinate.h"
41 39 #import "UIView+CustomAutoLayout.h"
42 40 #import "UITableView+Hit.h"
43   -#import "UIButton+CNCountDownButton.h"
44 41 #import "UIButton+createButton.h"
45 42 #import "UITextField+ZXExtension.h"
46 43 #import "UIViewController+ChildViewController.h"
... ...
Example/Pods/Local Podspecs/CNLiveDisease.podspec.json
1 1 {
2 2 "name": "CNLiveDisease",
3   - "version": "0.0.7",
  3 + "version": "0.1.0",
4 4 "summary": "智慧农业部分组件化",
5 5 "description": "TODO: Add long description of the pod here.",
6 6 "homepage": "http://bj.gitlab.cnlive.com/ios-team/CNLiveDisease",
... ... @@ -13,46 +13,71 @@
13 13 },
14 14 "source": {
15 15 "git": "http://bj.gitlab.cnlive.com/ios-team/CNLiveDisease.git",
16   - "tag": "0.0.7"
  16 + "tag": "0.1.0"
17 17 },
18 18 "platforms": {
19 19 "ios": "9.0"
20 20 },
21   - "source_files": "CNLiveDisease/Classes/**/*",
22 21 "resource_bundles": {
23 22 "CNLiveDisease": [
24 23 "CNLiveDisease/Assets/Assets.xcassets"
25 24 ]
26 25 },
27   - "public_header_files": "Pod/Classes/**/*.h",
28 26 "frameworks": [
29 27 "UIKit",
30 28 "Foundation"
31 29 ],
32   - "dependencies": {
33   - "CNLiveBaseKit": [
  30 + "subspecs": [
  31 + {
  32 + "name": "View",
  33 + "dependencies": {
  34 + "CNLiveTripartiteManagement/QMUIKit": [
34 35  
35   - ],
36   - "Masonry": [
  36 + ],
  37 + "CNLiveBaseKit": [
37 38  
38   - ],
39   - "QMUIKit": [
40   - "~> 3.1.0"
41   - ],
42   - "CNLiveCommonCategory": [
  39 + ]
  40 + },
  41 + "source_files": "CNLiveDisease/Classes/View/*.{h,m}"
  42 + },
  43 + {
  44 + "name": "Controller",
  45 + "dependencies": {
  46 + "CNLiveBaseKit": [
43 47  
44   - ],
45   - "CNLiveImagePickerController": [
  48 + ],
  49 + "CNLiveTripartiteManagement/QMUIKit": [
46 50  
47   - ],
48   - "CNLiveAVCamera": [
  51 + ],
  52 + "CNLiveTripartiteManagement/Masonry": [
49 53  
50   - ],
51   - "FLAnimatedImage": [
  54 + ],
  55 + "CNLiveCommonCategory": [
52 56  
53   - ],
54   - "CNLiveCoreMediator": [
  57 + ],
  58 + "CNLiveImagePickerController": [
55 59  
56   - ]
57   - }
  60 + ],
  61 + "CNLiveTripartiteManagement/FLAnimatedImage": [
  62 +
  63 + ],
  64 + "CNLiveAVCamera": [
  65 +
  66 + ],
  67 + "CNLiveCommonClass": [
  68 +
  69 + ],
  70 + "CNLiveRequestBastKit": [
  71 +
  72 + ],
  73 + "CNLiveDisease/View": [
  74 +
  75 + ],
  76 + "CNLiveCoreMediator_ModuleDiseaseAction": [
  77 +
  78 + ]
  79 + },
  80 + "source_files": "CNLiveDisease/Classes/Controller/*.{h,m}"
  81 + }
  82 + ]
58 83 }
... ...
Example/Pods/Manifest.lock
1 1 PODS:
2   - - CNLiveAVCamera (0.1.1):
  2 + - AFNetworking (3.2.1):
  3 + - AFNetworking/NSURLSession (= 3.2.1)
  4 + - AFNetworking/Reachability (= 3.2.1)
  5 + - AFNetworking/Security (= 3.2.1)
  6 + - AFNetworking/Serialization (= 3.2.1)
  7 + - AFNetworking/UIKit (= 3.2.1)
  8 + - AFNetworking/NSURLSession (3.2.1):
  9 + - AFNetworking/Reachability
  10 + - AFNetworking/Security
  11 + - AFNetworking/Serialization
  12 + - AFNetworking/Reachability (3.2.1)
  13 + - AFNetworking/Security (3.2.1)
  14 + - AFNetworking/Serialization (3.2.1)
  15 + - AFNetworking/UIKit (3.2.1):
  16 + - AFNetworking/NSURLSession
  17 + - CNLiveAVCamera (0.1.2):
  18 + - CNLiveBaseKit
  19 + - CNLiveBusinessTools
  20 + - CNLiveCommonCategory
3 21 - Masonry (~> 1.0.2)
  22 + - QMUIKit (~> 3.1.7)
4 23 - CNLiveBaseKit (0.1.8):
5 24 - MJExtension (~> 3.0.15.1)
6   - - CNLiveCommonCategory (0.2.5):
7   - - SDWebImage (~> 4.4.2)
8   - - CNLiveCoreMediator (0.1.0)
9   - - CNLiveDisease (0.0.7):
  25 + - CNLiveBusinessTools (0.1.1):
  26 + - CNLiveBaseKit
  27 + - CNLiveEnvironmentConfiguration
  28 + - CNLiveUserManagement
  29 + - CNLiveCommonCategory (0.3.9):
  30 + - SDWebImage (~> 4.4.6)
  31 + - CNLiveCommonClass (0.0.2):
  32 + - CNLiveBaseKit
  33 + - CNLiveRequestBastKit
  34 + - CNLiveTripartiteManagement/QMUIKit
  35 + - CNLiveCoreMediator (0.1.1)
  36 + - CNLiveCoreMediator_ModuleDiseaseAction (0.0.2):
  37 + - CNLiveCoreMediator
  38 + - CNLiveDisease (0.1.0):
  39 + - CNLiveDisease/Controller (= 0.1.0)
  40 + - CNLiveDisease/View (= 0.1.0)
  41 + - CNLiveDisease/Controller (0.1.0):
10 42 - CNLiveAVCamera
11 43 - CNLiveBaseKit
12 44 - CNLiveCommonCategory
13   - - CNLiveCoreMediator
  45 + - CNLiveCommonClass
  46 + - CNLiveCoreMediator_ModuleDiseaseAction
  47 + - CNLiveDisease/View
14 48 - CNLiveImagePickerController
15   - - FLAnimatedImage
16   - - Masonry
17   - - QMUIKit (~> 3.1.0)
  49 + - CNLiveRequestBastKit
  50 + - CNLiveTripartiteManagement/FLAnimatedImage
  51 + - CNLiveTripartiteManagement/Masonry
  52 + - CNLiveTripartiteManagement/QMUIKit
  53 + - CNLiveDisease/View (0.1.0):
  54 + - CNLiveBaseKit
  55 + - CNLiveTripartiteManagement/QMUIKit
  56 + - CNLiveEnvironmentConfiguration (0.0.5)
18 57 - CNLiveImagePickerController (0.0.2)
  58 + - CNLiveRequestBastKit (0.2.1.6):
  59 + - AFNetworking
  60 + - CNLiveTripartiteManagement/FLAnimatedImage (0.0.6):
  61 + - FLAnimatedImage (~> 1.0.12)
  62 + - CNLiveTripartiteManagement/Masonry (0.0.6):
  63 + - Masonry (~> 1.0.2)
  64 + - CNLiveTripartiteManagement/QMUIKit (0.0.6):
  65 + - QMUIKit (~> 3.1.7)
  66 + - CNLiveUserManagement (0.0.8):
  67 + - MJExtension
19 68 - FLAnimatedImage (1.0.12)
20 69 - Masonry (1.0.2)
21 70 - MJExtension (3.0.15.1)
22   - - QMUIKit (3.1.0):
23   - - QMUIKit/QMUIComponents (= 3.1.0)
24   - - QMUIKit/QMUICore (= 3.1.0)
25   - - QMUIKit/QMUILog (= 3.1.0)
26   - - QMUIKit/QMUIMainFrame (= 3.1.0)
27   - - QMUIKit/QMUIResources (= 3.1.0)
28   - - QMUIKit/QMUIWeakObjectContainer (= 3.1.0)
29   - - QMUIKit/QMUIComponents (3.1.0):
30   - - QMUIKit/QMUIComponents/NavigationBarTransition (= 3.1.0)
31   - - QMUIKit/QMUIComponents/QMUIAlertController (= 3.1.0)
32   - - QMUIKit/QMUIComponents/QMUIAssetLibrary (= 3.1.0)
33   - - QMUIKit/QMUIComponents/QMUIBadge (= 3.1.0)
34   - - QMUIKit/QMUIComponents/QMUIButton (= 3.1.0)
35   - - QMUIKit/QMUIComponents/QMUICAAnimationExtension (= 3.1.0)
36   - - QMUIKit/QMUIComponents/QMUICellHeightCache (= 3.1.0)
37   - - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (= 3.1.0)
38   - - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (= 3.1.0)
39   - - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (= 3.1.0)
40   - - QMUIKit/QMUIComponents/QMUIConsole (= 3.1.0)
41   - - QMUIKit/QMUIComponents/QMUIDialogViewController (= 3.1.0)
42   - - QMUIKit/QMUIComponents/QMUIEmotionInputManager (= 3.1.0)
43   - - QMUIKit/QMUIComponents/QMUIEmotionView (= 3.1.0)
44   - - QMUIKit/QMUIComponents/QMUIEmptyView (= 3.1.0)
45   - - QMUIKit/QMUIComponents/QMUIFillButton (= 3.1.0)
46   - - QMUIKit/QMUIComponents/QMUIFloatLayoutView (= 3.1.0)
47   - - QMUIKit/QMUIComponents/QMUIGhostButton (= 3.1.0)
48   - - QMUIKit/QMUIComponents/QMUIGridView (= 3.1.0)
49   - - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (= 3.1.0)
50   - - QMUIKit/QMUIComponents/QMUIImagePreviewView (= 3.1.0)
51   - - QMUIKit/QMUIComponents/QMUIKeyboardManager (= 3.1.0)
52   - - QMUIKit/QMUIComponents/QMUILabel (= 3.1.0)
53   - - QMUIKit/QMUIComponents/QMUILinkButton (= 3.1.0)
54   - - QMUIKit/QMUIComponents/QMUILogManagerViewController (= 3.1.0)
55   - - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (= 3.1.0)
56   - - QMUIKit/QMUIComponents/QMUIMarqueeLabel (= 3.1.0)
57   - - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (= 3.1.0)
58   - - QMUIKit/QMUIComponents/QMUIMoreOperationController (= 3.1.0)
59   - - QMUIKit/QMUIComponents/QMUIMultipleDelegates (= 3.1.0)
60   - - QMUIKit/QMUIComponents/QMUINavigationButton (= 3.1.0)
61   - - QMUIKit/QMUIComponents/QMUINavigationTitleView (= 3.1.0)
62   - - QMUIKit/QMUIComponents/QMUIOrderedDictionary (= 3.1.0)
63   - - QMUIKit/QMUIComponents/QMUIPieProgressView (= 3.1.0)
64   - - QMUIKit/QMUIComponents/QMUIPopupContainerView (= 3.1.0)
65   - - QMUIKit/QMUIComponents/QMUIPopupMenuView (= 3.1.0)
66   - - QMUIKit/QMUIComponents/QMUIScrollAnimator (= 3.1.0)
67   - - QMUIKit/QMUIComponents/QMUISearchBar (= 3.1.0)
68   - - QMUIKit/QMUIComponents/QMUISearchController (= 3.1.0)
69   - - QMUIKit/QMUIComponents/QMUISegmentedControl (= 3.1.0)
70   - - QMUIKit/QMUIComponents/QMUISlider (= 3.1.0)
71   - - QMUIKit/QMUIComponents/QMUIStaticTableView (= 3.1.0)
72   - - QMUIKit/QMUIComponents/QMUITableView (= 3.1.0)
73   - - QMUIKit/QMUIComponents/QMUITableViewCell (= 3.1.0)
74   - - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (= 3.1.0)
75   - - QMUIKit/QMUIComponents/QMUITableViewProtocols (= 3.1.0)
76   - - QMUIKit/QMUIComponents/QMUITestView (= 3.1.0)
77   - - QMUIKit/QMUIComponents/QMUITextField (= 3.1.0)
78   - - QMUIKit/QMUIComponents/QMUITextView (= 3.1.0)
79   - - QMUIKit/QMUIComponents/QMUITips (= 3.1.0)
80   - - QMUIKit/QMUIComponents/QMUIToastView (= 3.1.0)
81   - - QMUIKit/QMUIComponents/QMUIToolbarButton (= 3.1.0)
82   - - QMUIKit/QMUIComponents/QMUIVisualEffectView (= 3.1.0)
83   - - QMUIKit/QMUIComponents/QMUIZoomImageView (= 3.1.0)
84   - - QMUIKit/QMUICore
85   - - QMUIKit/QMUIComponents/NavigationBarTransition (3.1.0):
  71 + - QMUIKit (3.1.9):
  72 + - QMUIKit/QMUIComponents (= 3.1.9)
  73 + - QMUIKit/QMUICore (= 3.1.9)
  74 + - QMUIKit/QMUILog (= 3.1.9)
  75 + - QMUIKit/QMUIMainFrame (= 3.1.9)
  76 + - QMUIKit/QMUIResources (= 3.1.9)
  77 + - QMUIKit/QMUIWeakObjectContainer (= 3.1.9)
  78 + - QMUIKit/QMUIComponents (3.1.9):
  79 + - QMUIKit/QMUIComponents/NavigationBarTransition (= 3.1.9)
  80 + - QMUIKit/QMUIComponents/QMUIAlertController (= 3.1.9)
  81 + - QMUIKit/QMUIComponents/QMUIAssetLibrary (= 3.1.9)
  82 + - QMUIKit/QMUIComponents/QMUIBadge (= 3.1.9)
  83 + - QMUIKit/QMUIComponents/QMUIButton (= 3.1.9)
  84 + - QMUIKit/QMUIComponents/QMUICAAnimationExtension (= 3.1.9)
  85 + - QMUIKit/QMUIComponents/QMUICellHeightCache (= 3.1.9)
  86 + - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (= 3.1.9)
  87 + - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (= 3.1.9)
  88 + - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (= 3.1.9)
  89 + - QMUIKit/QMUIComponents/QMUIConsole (= 3.1.9)
  90 + - QMUIKit/QMUIComponents/QMUIDialogViewController (= 3.1.9)
  91 + - QMUIKit/QMUIComponents/QMUIEmotionInputManager (= 3.1.9)
  92 + - QMUIKit/QMUIComponents/QMUIEmotionView (= 3.1.9)
  93 + - QMUIKit/QMUIComponents/QMUIEmptyView (= 3.1.9)
  94 + - QMUIKit/QMUIComponents/QMUIFillButton (= 3.1.9)
  95 + - QMUIKit/QMUIComponents/QMUIFloatLayoutView (= 3.1.9)
  96 + - QMUIKit/QMUIComponents/QMUIGhostButton (= 3.1.9)
  97 + - QMUIKit/QMUIComponents/QMUIGridView (= 3.1.9)
  98 + - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (= 3.1.9)
  99 + - QMUIKit/QMUIComponents/QMUIImagePreviewView (= 3.1.9)
  100 + - QMUIKit/QMUIComponents/QMUIKeyboardManager (= 3.1.9)
  101 + - QMUIKit/QMUIComponents/QMUILabel (= 3.1.9)
  102 + - QMUIKit/QMUIComponents/QMUILinkButton (= 3.1.9)
  103 + - QMUIKit/QMUIComponents/QMUILogManagerViewController (= 3.1.9)
  104 + - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (= 3.1.9)
  105 + - QMUIKit/QMUIComponents/QMUIMarqueeLabel (= 3.1.9)
  106 + - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (= 3.1.9)
  107 + - QMUIKit/QMUIComponents/QMUIMoreOperationController (= 3.1.9)
  108 + - QMUIKit/QMUIComponents/QMUIMultipleDelegates (= 3.1.9)
  109 + - QMUIKit/QMUIComponents/QMUINavigationButton (= 3.1.9)
  110 + - QMUIKit/QMUIComponents/QMUINavigationTitleView (= 3.1.9)
  111 + - QMUIKit/QMUIComponents/QMUIOrderedDictionary (= 3.1.9)
  112 + - QMUIKit/QMUIComponents/QMUIPieProgressView (= 3.1.9)
  113 + - QMUIKit/QMUIComponents/QMUIPopupContainerView (= 3.1.9)
  114 + - QMUIKit/QMUIComponents/QMUIPopupMenuView (= 3.1.9)
  115 + - QMUIKit/QMUIComponents/QMUIScrollAnimator (= 3.1.9)
  116 + - QMUIKit/QMUIComponents/QMUISearchBar (= 3.1.9)
  117 + - QMUIKit/QMUIComponents/QMUISearchController (= 3.1.9)
  118 + - QMUIKit/QMUIComponents/QMUISegmentedControl (= 3.1.9)
  119 + - QMUIKit/QMUIComponents/QMUISlider (= 3.1.9)
  120 + - QMUIKit/QMUIComponents/QMUIStaticTableView (= 3.1.9)
  121 + - QMUIKit/QMUIComponents/QMUITableView (= 3.1.9)
  122 + - QMUIKit/QMUIComponents/QMUITableViewCell (= 3.1.9)
  123 + - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (= 3.1.9)
  124 + - QMUIKit/QMUIComponents/QMUITableViewProtocols (= 3.1.9)
  125 + - QMUIKit/QMUIComponents/QMUITestView (= 3.1.9)
  126 + - QMUIKit/QMUIComponents/QMUITextField (= 3.1.9)
  127 + - QMUIKit/QMUIComponents/QMUITextView (= 3.1.9)
  128 + - QMUIKit/QMUIComponents/QMUITips (= 3.1.9)
  129 + - QMUIKit/QMUIComponents/QMUIToastView (= 3.1.9)
  130 + - QMUIKit/QMUIComponents/QMUIToolbarButton (= 3.1.9)
  131 + - QMUIKit/QMUIComponents/QMUIVisualEffectView (= 3.1.9)
  132 + - QMUIKit/QMUIComponents/QMUIZoomImageView (= 3.1.9)
  133 + - QMUIKit/QMUICore
  134 + - QMUIKit/QMUIComponents/NavigationBarTransition (3.1.9):
86 135 - QMUIKit/QMUIComponents/QMUINavigationTitleView
87 136 - QMUIKit/QMUICore
88 137 - QMUIKit/QMUIMainFrame
89   - - QMUIKit/QMUIComponents/QMUIAlertController (3.1.0):
  138 + - QMUIKit/QMUIComponents/QMUIAlertController (3.1.9):
90 139 - QMUIKit/QMUIComponents/QMUIButton
91 140 - QMUIKit/QMUIComponents/QMUIModalPresentationViewController
92 141 - QMUIKit/QMUIComponents/QMUITextField
93 142 - QMUIKit/QMUICore
94   - - QMUIKit/QMUIComponents/QMUIAssetLibrary (3.1.0):
  143 + - QMUIKit/QMUIComponents/QMUIAssetLibrary (3.1.9):
95 144 - QMUIKit/QMUICore
96   - - QMUIKit/QMUIComponents/QMUIBadge (3.1.0):
  145 + - QMUIKit/QMUIComponents/QMUIBadge (3.1.9):
97 146 - QMUIKit/QMUIComponents/QMUILabel
98 147 - QMUIKit/QMUICore
99   - - QMUIKit/QMUIComponents/QMUIButton (3.1.0):
  148 + - QMUIKit/QMUIComponents/QMUIButton (3.1.9):
100 149 - QMUIKit/QMUICore
101   - - QMUIKit/QMUIComponents/QMUICAAnimationExtension (3.1.0):
  150 + - QMUIKit/QMUIComponents/QMUICAAnimationExtension (3.1.9):
102 151 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
103 152 - QMUIKit/QMUICore
104   - - QMUIKit/QMUIComponents/QMUICellHeightCache (3.1.0):
  153 + - QMUIKit/QMUIComponents/QMUICellHeightCache (3.1.9):
105 154 - QMUIKit/QMUIComponents/QMUITableViewProtocols
106 155 - QMUIKit/QMUICore
107   - - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (3.1.0):
  156 + - QMUIKit/QMUIComponents/QMUICellHeightKeyCache (3.1.9):
108 157 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
109 158 - QMUIKit/QMUIComponents/QMUITableViewProtocols
110 159 - QMUIKit/QMUICore
111   - - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (3.1.0):
  160 + - QMUIKit/QMUIComponents/QMUICellSizeKeyCache (3.1.9):
112 161 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
113 162 - QMUIKit/QMUICore
114   - - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (3.1.0):
  163 + - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout (3.1.9):
115 164 - QMUIKit/QMUICore
116   - - QMUIKit/QMUIComponents/QMUIConsole (3.1.0):
  165 + - QMUIKit/QMUIComponents/QMUIConsole (3.1.9):
117 166 - QMUIKit/QMUIComponents/QMUIButton
118 167 - QMUIKit/QMUIComponents/QMUICAAnimationExtension
119 168 - QMUIKit/QMUIComponents/QMUIPopupMenuView
120 169 - QMUIKit/QMUIComponents/QMUITextField
121 170 - QMUIKit/QMUIComponents/QMUITextView
122 171 - QMUIKit/QMUICore
123   - - QMUIKit/QMUIComponents/QMUIDialogViewController (3.1.0):
  172 + - QMUIKit/QMUIComponents/QMUIDialogViewController (3.1.9):
124 173 - QMUIKit/QMUIComponents/QMUIButton
125 174 - QMUIKit/QMUIComponents/QMUILabel
126 175 - QMUIKit/QMUIComponents/QMUIModalPresentationViewController
... ... @@ -130,27 +179,27 @@ PODS:
130 179 - QMUIKit/QMUIComponents/QMUITextField
131 180 - QMUIKit/QMUICore
132 181 - QMUIKit/QMUIMainFrame
133   - - QMUIKit/QMUIComponents/QMUIEmotionInputManager (3.1.0):
  182 + - QMUIKit/QMUIComponents/QMUIEmotionInputManager (3.1.9):
134 183 - QMUIKit/QMUIComponents/QMUIEmotionView
135 184 - QMUIKit/QMUICore
136   - - QMUIKit/QMUIComponents/QMUIEmotionView (3.1.0):
  185 + - QMUIKit/QMUIComponents/QMUIEmotionView (3.1.9):
137 186 - QMUIKit/QMUIComponents/QMUIButton
138 187 - QMUIKit/QMUICore
139 188 - QMUIKit/QMUIResources
140   - - QMUIKit/QMUIComponents/QMUIEmptyView (3.1.0):
  189 + - QMUIKit/QMUIComponents/QMUIEmptyView (3.1.9):
141 190 - QMUIKit/QMUIComponents/QMUIButton
142 191 - QMUIKit/QMUICore
143   - - QMUIKit/QMUIComponents/QMUIFillButton (3.1.0):
  192 + - QMUIKit/QMUIComponents/QMUIFillButton (3.1.9):
144 193 - QMUIKit/QMUIComponents/QMUIButton
145 194 - QMUIKit/QMUICore
146   - - QMUIKit/QMUIComponents/QMUIFloatLayoutView (3.1.0):
  195 + - QMUIKit/QMUIComponents/QMUIFloatLayoutView (3.1.9):
147 196 - QMUIKit/QMUICore
148   - - QMUIKit/QMUIComponents/QMUIGhostButton (3.1.0):
  197 + - QMUIKit/QMUIComponents/QMUIGhostButton (3.1.9):
149 198 - QMUIKit/QMUIComponents/QMUIButton
150 199 - QMUIKit/QMUICore
151   - - QMUIKit/QMUIComponents/QMUIGridView (3.1.0):
  200 + - QMUIKit/QMUIComponents/QMUIGridView (3.1.9):
152 201 - QMUIKit/QMUICore
153   - - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (3.1.0):
  202 + - QMUIKit/QMUIComponents/QMUIImagePickerLibrary (3.1.9):
154 203 - QMUIKit/QMUIComponents/QMUIAlertController
155 204 - QMUIKit/QMUIComponents/QMUIAssetLibrary
156 205 - QMUIKit/QMUIComponents/QMUIButton
... ... @@ -162,7 +211,7 @@ PODS:
162 211 - QMUIKit/QMUICore
163 212 - QMUIKit/QMUIMainFrame
164 213 - QMUIKit/QMUIResources
165   - - QMUIKit/QMUIComponents/QMUIImagePreviewView (3.1.0):
  214 + - QMUIKit/QMUIComponents/QMUIImagePreviewView (3.1.9):
166 215 - QMUIKit/QMUIComponents/QMUIButton
167 216 - QMUIKit/QMUIComponents/QMUICollectionViewPagingLayout
168 217 - QMUIKit/QMUIComponents/QMUIEmptyView
... ... @@ -170,111 +219,111 @@ PODS:
170 219 - QMUIKit/QMUIComponents/QMUIZoomImageView
171 220 - QMUIKit/QMUICore
172 221 - QMUIKit/QMUIMainFrame
173   - - QMUIKit/QMUIComponents/QMUIKeyboardManager (3.1.0):
  222 + - QMUIKit/QMUIComponents/QMUIKeyboardManager (3.1.9):
174 223 - QMUIKit/QMUICore
175   - - QMUIKit/QMUIComponents/QMUILabel (3.1.0):
  224 + - QMUIKit/QMUIComponents/QMUILabel (3.1.9):
176 225 - QMUIKit/QMUICore
177   - - QMUIKit/QMUIComponents/QMUILinkButton (3.1.0):
  226 + - QMUIKit/QMUIComponents/QMUILinkButton (3.1.9):
178 227 - QMUIKit/QMUIComponents/QMUIButton
179 228 - QMUIKit/QMUICore
180   - - QMUIKit/QMUIComponents/QMUILogManagerViewController (3.1.0):
  229 + - QMUIKit/QMUIComponents/QMUILogManagerViewController (3.1.9):
181 230 - QMUIKit/QMUIComponents/QMUIPopupMenuView
182 231 - QMUIKit/QMUIComponents/QMUISearchController
183 232 - QMUIKit/QMUIComponents/QMUIStaticTableView
184 233 - QMUIKit/QMUIComponents/QMUITableView
185 234 - QMUIKit/QMUICore
186 235 - QMUIKit/QMUIMainFrame
187   - - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (3.1.0):
  236 + - QMUIKit/QMUIComponents/QMUILogWithConfigurationSupported (3.1.9):
188 237 - QMUIKit/QMUICore
189   - - QMUIKit/QMUIComponents/QMUIMarqueeLabel (3.1.0):
  238 + - QMUIKit/QMUIComponents/QMUIMarqueeLabel (3.1.9):
190 239 - QMUIKit/QMUICore
191   - - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (3.1.0):
  240 + - QMUIKit/QMUIComponents/QMUIModalPresentationViewController (3.1.9):
192 241 - QMUIKit/QMUIComponents/QMUIKeyboardManager
193 242 - QMUIKit/QMUICore
194   - - QMUIKit/QMUIComponents/QMUIMoreOperationController (3.1.0):
  243 + - QMUIKit/QMUIComponents/QMUIMoreOperationController (3.1.9):
195 244 - QMUIKit/QMUIComponents/QMUIButton
196 245 - QMUIKit/QMUIComponents/QMUIModalPresentationViewController
197 246 - QMUIKit/QMUICore
198   - - QMUIKit/QMUIComponents/QMUIMultipleDelegates (3.1.0):
  247 + - QMUIKit/QMUIComponents/QMUIMultipleDelegates (3.1.9):
199 248 - QMUIKit/QMUICore
200   - - QMUIKit/QMUIComponents/QMUINavigationButton (3.1.0):
  249 + - QMUIKit/QMUIComponents/QMUINavigationButton (3.1.9):
201 250 - QMUIKit/QMUICore
202 251 - QMUIKit/QMUIMainFrame
203   - - QMUIKit/QMUIComponents/QMUINavigationTitleView (3.1.0):
  252 + - QMUIKit/QMUIComponents/QMUINavigationTitleView (3.1.9):
204 253 - QMUIKit/QMUIComponents/QMUIButton
205 254 - QMUIKit/QMUICore
206   - - QMUIKit/QMUIComponents/QMUIOrderedDictionary (3.1.0):
  255 + - QMUIKit/QMUIComponents/QMUIOrderedDictionary (3.1.9):
207 256 - QMUIKit/QMUICore
208   - - QMUIKit/QMUIComponents/QMUIPieProgressView (3.1.0):
  257 + - QMUIKit/QMUIComponents/QMUIPieProgressView (3.1.9):
209 258 - QMUIKit/QMUICore
210   - - QMUIKit/QMUIComponents/QMUIPopupContainerView (3.1.0):
  259 + - QMUIKit/QMUIComponents/QMUIPopupContainerView (3.1.9):
211 260 - QMUIKit/QMUICore
212 261 - QMUIKit/QMUIMainFrame
213   - - QMUIKit/QMUIComponents/QMUIPopupMenuView (3.1.0):
  262 + - QMUIKit/QMUIComponents/QMUIPopupMenuView (3.1.9):
214 263 - QMUIKit/QMUIComponents/QMUIButton
215 264 - QMUIKit/QMUIComponents/QMUIPopupContainerView
216 265 - QMUIKit/QMUICore
217   - - QMUIKit/QMUIComponents/QMUIScrollAnimator (3.1.0):
  266 + - QMUIKit/QMUIComponents/QMUIScrollAnimator (3.1.9):
218 267 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
219 268 - QMUIKit/QMUICore
220   - - QMUIKit/QMUIComponents/QMUISearchBar (3.1.0):
  269 + - QMUIKit/QMUIComponents/QMUISearchBar (3.1.9):
221 270 - QMUIKit/QMUICore
222   - - QMUIKit/QMUIComponents/QMUISearchController (3.1.0):
  271 + - QMUIKit/QMUIComponents/QMUISearchController (3.1.9):
223 272 - QMUIKit/QMUIComponents/QMUIEmptyView
224 273 - QMUIKit/QMUIComponents/QMUISearchBar
225 274 - QMUIKit/QMUICore
226 275 - QMUIKit/QMUIMainFrame
227   - - QMUIKit/QMUIComponents/QMUISegmentedControl (3.1.0):
  276 + - QMUIKit/QMUIComponents/QMUISegmentedControl (3.1.9):
228 277 - QMUIKit/QMUICore
229   - - QMUIKit/QMUIComponents/QMUISlider (3.1.0):
  278 + - QMUIKit/QMUIComponents/QMUISlider (3.1.9):
230 279 - QMUIKit/QMUICore
231   - - QMUIKit/QMUIComponents/QMUIStaticTableView (3.1.0):
  280 + - QMUIKit/QMUIComponents/QMUIStaticTableView (3.1.9):
232 281 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
233 282 - QMUIKit/QMUIComponents/QMUITableViewCell
234 283 - QMUIKit/QMUICore
235   - - QMUIKit/QMUIComponents/QMUITableView (3.1.0):
  284 + - QMUIKit/QMUIComponents/QMUITableView (3.1.9):
236 285 - QMUIKit/QMUIComponents/QMUITableViewProtocols
237 286 - QMUIKit/QMUICore
238   - - QMUIKit/QMUIComponents/QMUITableViewCell (3.1.0):
  287 + - QMUIKit/QMUIComponents/QMUITableViewCell (3.1.9):
239 288 - QMUIKit/QMUIComponents/QMUIButton
240 289 - QMUIKit/QMUICore
241   - - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (3.1.0):
  290 + - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView (3.1.9):
242 291 - QMUIKit/QMUICore
243   - - QMUIKit/QMUIComponents/QMUITableViewProtocols (3.1.0):
  292 + - QMUIKit/QMUIComponents/QMUITableViewProtocols (3.1.9):
244 293 - QMUIKit/QMUICore
245   - - QMUIKit/QMUIComponents/QMUITestView (3.1.0):
  294 + - QMUIKit/QMUIComponents/QMUITestView (3.1.9):
246 295 - QMUIKit/QMUICore
247   - - QMUIKit/QMUIComponents/QMUITextField (3.1.0):
  296 + - QMUIKit/QMUIComponents/QMUITextField (3.1.9):
248 297 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
249 298 - QMUIKit/QMUICore
250   - - QMUIKit/QMUIComponents/QMUITextView (3.1.0):
  299 + - QMUIKit/QMUIComponents/QMUITextView (3.1.9):
251 300 - QMUIKit/QMUIComponents/QMUILabel
252 301 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
253 302 - QMUIKit/QMUICore
254   - - QMUIKit/QMUIComponents/QMUITips (3.1.0):
  303 + - QMUIKit/QMUIComponents/QMUITips (3.1.9):
255 304 - QMUIKit/QMUIComponents/QMUIToastView
256 305 - QMUIKit/QMUICore
257 306 - QMUIKit/QMUIResources
258   - - QMUIKit/QMUIComponents/QMUIToastView (3.1.0):
  307 + - QMUIKit/QMUIComponents/QMUIToastView (3.1.9):
259 308 - QMUIKit/QMUIComponents/QMUIKeyboardManager
260 309 - QMUIKit/QMUIComponents/QMUIVisualEffectView
261 310 - QMUIKit/QMUICore
262   - - QMUIKit/QMUIComponents/QMUIToolbarButton (3.1.0):
  311 + - QMUIKit/QMUIComponents/QMUIToolbarButton (3.1.9):
263 312 - QMUIKit/QMUICore
264   - - QMUIKit/QMUIComponents/QMUIVisualEffectView (3.1.0):
  313 + - QMUIKit/QMUIComponents/QMUIVisualEffectView (3.1.9):
265 314 - QMUIKit/QMUICore
266   - - QMUIKit/QMUIComponents/QMUIZoomImageView (3.1.0):
  315 + - QMUIKit/QMUIComponents/QMUIZoomImageView (3.1.9):
267 316 - QMUIKit/QMUIComponents/QMUIAssetLibrary
268 317 - QMUIKit/QMUIComponents/QMUIButton
269 318 - QMUIKit/QMUIComponents/QMUIEmptyView
270 319 - QMUIKit/QMUIComponents/QMUIPieProgressView
271 320 - QMUIKit/QMUIComponents/QMUISlider
272 321 - QMUIKit/QMUICore
273   - - QMUIKit/QMUICore (3.1.0):
  322 + - QMUIKit/QMUICore (3.1.9):
274 323 - QMUIKit/QMUILog
275 324 - QMUIKit/QMUIWeakObjectContainer
276   - - QMUIKit/QMUILog (3.1.0)
277   - - QMUIKit/QMUIMainFrame (3.1.0):
  325 + - QMUIKit/QMUILog (3.1.9)
  326 + - QMUIKit/QMUIMainFrame (3.1.9):
278 327 - QMUIKit/QMUIComponents/QMUIEmptyView
279 328 - QMUIKit/QMUIComponents/QMUIKeyboardManager
280 329 - QMUIKit/QMUIComponents/QMUIMultipleDelegates
... ... @@ -283,31 +332,42 @@ PODS:
283 332 - QMUIKit/QMUIComponents/QMUITableViewHeaderFooterView
284 333 - QMUIKit/QMUICore
285 334 - QMUIKit/QMUILog
286   - - QMUIKit/QMUIResources (3.1.0)
287   - - QMUIKit/QMUIWeakObjectContainer (3.1.0)
288   - - SDWebImage (4.4.3):
289   - - SDWebImage/Core (= 4.4.3)
290   - - SDWebImage/Core (4.4.3)
  335 + - QMUIKit/QMUIResources (3.1.9)
  336 + - QMUIKit/QMUIWeakObjectContainer (3.1.9)
  337 + - SDWebImage (4.4.6):
  338 + - SDWebImage/Core (= 4.4.6)
  339 + - SDWebImage/Core (4.4.6)
291 340  
292 341 DEPENDENCIES:
293 342 - CNLiveAVCamera
294 343 - CNLiveBaseKit
295 344 - CNLiveCommonCategory
  345 + - CNLiveCommonClass
296 346 - CNLiveCoreMediator
  347 + - CNLiveCoreMediator_ModuleDiseaseAction
297 348 - CNLiveDisease (from `../`)
298 349 - CNLiveImagePickerController
  350 + - CNLiveRequestBastKit
  351 + - CNLiveTripartiteManagement/Masonry
  352 + - CNLiveTripartiteManagement/QMUIKit
299 353 - FLAnimatedImage
300   - - Masonry
301   - - QMUIKit (~> 3.1.0)
302 354  
303 355 SPEC REPOS:
304 356 http://bj.gitlab.cnlive.com/ios-team/CNLiveRepos.git:
305 357 - CNLiveAVCamera
306 358 - CNLiveBaseKit
  359 + - CNLiveBusinessTools
307 360 - CNLiveCommonCategory
  361 + - CNLiveCommonClass
308 362 - CNLiveCoreMediator
  363 + - CNLiveCoreMediator_ModuleDiseaseAction
  364 + - CNLiveEnvironmentConfiguration
309 365 - CNLiveImagePickerController
  366 + - CNLiveRequestBastKit
  367 + - CNLiveTripartiteManagement
  368 + - CNLiveUserManagement
310 369 https://github.com/cocoapods/specs.git:
  370 + - AFNetworking
311 371 - FLAnimatedImage
312 372 - Masonry
313 373 - MJExtension
... ... @@ -319,18 +379,26 @@ EXTERNAL SOURCES:
319 379 :path: "../"
320 380  
321 381 SPEC CHECKSUMS:
322   - CNLiveAVCamera: 7f3eba8eb1827f6e7a5047b0bb9f9f0bf19d1451
  382 + AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
  383 + CNLiveAVCamera: bad4d78fa537222e3e0fcc31b19e4930de634104
323 384 CNLiveBaseKit: 09a97c3411a91270fb68bfe20a1df2cdbcd2c524
324   - CNLiveCommonCategory: 57cb8422ccf17ba5cc8fffe76851fa828c367d06
325   - CNLiveCoreMediator: 0b76225bcbbf99427065545e2a7616092ddc8758
326   - CNLiveDisease: 39bbf8f961684fe70f04ca69111a1b9bdcedc498
  385 + CNLiveBusinessTools: b857e84e14bc733bf06d75a058aa703377dfafe0
  386 + CNLiveCommonCategory: 4d061e148d1d85f0fafce51e5d255a517c951210
  387 + CNLiveCommonClass: c60e0443c5b3beaa333d3e51e165c45f5462a241
  388 + CNLiveCoreMediator: 964e2d5ea765d4b1137ff3e8fc72f83bbdf3bb74
  389 + CNLiveCoreMediator_ModuleDiseaseAction: 8c0efd14e4107995ba961d139796d9c411c97911
  390 + CNLiveDisease: 21a578262c766dc1c7ebbb550b3b761239a41314
  391 + CNLiveEnvironmentConfiguration: 732c15a6cb3e33190cffbd14d3d66572e7ea35b1
327 392 CNLiveImagePickerController: 2be3ac0a75563f5945101ee6e0a787ad2fc15549
  393 + CNLiveRequestBastKit: 4922b3ef5db96e61e56cabf951db72f5b25ed748
  394 + CNLiveTripartiteManagement: 5fdbdfb7472654e93e3b7dae90cc2b8c679811f8
  395 + CNLiveUserManagement: b0f28a8506d664af5df59af979c61cea9e5ce0e2
328 396 FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31
329 397 Masonry: 7c429b56da9d4ee0bbb3ed77a5ea710d6a5df39e
330 398 MJExtension: 19bc33ce2eee2d319760f5622562cf581a6ff756
331   - QMUIKit: 33959d093f48bb64f754ad696c310887a0768c49
332   - SDWebImage: c5594f1a19c48d526d321e548902b56b479cd508
  399 + QMUIKit: d8e5ce25b33d78020fdc504f3762e197a61b9640
  400 + SDWebImage: 3f3f0c02f09798048c47a5ed0a13f17b063572d8
333 401  
334   -PODFILE CHECKSUM: 31f3a02ae28a4e7c45ea480d7911df763de8f06d
  402 +PODFILE CHECKSUM: 5a155cc771b283b2aa6d92652b809b0580e3632e
335 403  
336 404 COCOAPODS: 1.5.3
... ...