Commit ba0c3a1688757c7a8d5e4843e6d2a83aa852b546

Authored by yanglingyu
1 parent a5062ade

直播与首页增加缓存效果

CNLiveScioLive/Pages/Home/CNHomeViewController.m
... ... @@ -27,86 +27,52 @@
27 27  
28 28 NSDictionary *parameters = @{@"params":@"{\"plat\":\"i\",\"version\":\"5.0\",\"appid\":\"gxb\",\"pageUUID\":\"852cde69-ecd8-11e6-b52e-c7d8a7a18cc4\",\"pageType\":\"channelList\"}"};
29 29 if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) {
30   - [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")];
31   - if (!_reFreshBtn &&self.data.count == 0) {
32   - [self.view addSubview:self.reFreshBtn];
  30 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"homeList"];
  31 + if (data) {
  32 + [self dealDictionaryData:data];
33 33 }
  34 + [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")];
  35 +// if (!_reFreshBtn &&self.data.count == 0) {
  36 +// [self.view addSubview:self.reFreshBtn];
  37 +// }
34 38 return;
35 39 }
36 40 [AlertViewTool showHUDView];
37 41  
38 42 [XWHTTPTool POST:strUrl params:parameters success:^(id json) {
39 43  
40   - if (self->_reFreshBtn) {
41   - [self->_reFreshBtn removeFromSuperview];
42   - }
  44 +// if (self->_reFreshBtn) {
  45 +// [self->_reFreshBtn removeFromSuperview];
  46 +// }
43 47 [AlertViewTool hideHUDView];
44 48  
45 49 // 请求成功,解析数据
46 50 NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json];
47 51  
48 52 if ([dic[@"errorCode"] isEqualToString:@"0"]) {
49   -
50   - NSDictionary *ininav = dic[@"ininav"];
51   - NSArray *ininavArray = ininav[@"programs"];
52   -
53   - if ([ininavArray isKindOfClass:[NSArray class]]) {
54   - for (NSDictionary *dics in ininavArray) {
55   - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
56   - return @{ @"ID" : @"id" ,@"Description" : @"description" };
57   - }];
58   -
59   - NSLog(@"%@",dics);
60   - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
61   -
62   - }
63   -
64   - }
65   -
66   - NSMutableArray *controllers = [NSMutableArray array];
67   - NSMutableArray *titles = [NSMutableArray array];
68   - NSMutableArray *colors = [NSMutableArray array];
69   - for(int i = 0; i < self.data.count; i++){
70   - CNHomeModel *model = self.data[i];
71   - [titles addObject:model.title];
72   - if (!model.textColor) {
73   - model.textColor = @"";
74   - }
75   - [colors addObject:model.textColor];
76   - if ([model.cid isEqualToString:@"spzl/djzw/"]) {
77   - //答记者问
78   - CNLiveReporterAskedViewController *vc = [[CNLiveReporterAskedViewController alloc] init];
79   - vc.cid = model.cid;
80   - [controllers addObject:vc];
81   -
82   - }else{
83   - //其他
84   - CNLiveHeraldedNewsViewController *vc = [[CNLiveHeraldedNewsViewController alloc] init];
85   - vc.cid = model.cid;
86   - [controllers addObject:vc];
87   - }
88   -
89   - }
90   - if(controllers.count > 0){
91   - NSMutableArray *textArray = [NSMutableArray array];
92   - [textArray addObject:titles];
93   - [textArray addObject:colors];
94   - self.segmentControl.titles = textArray;
95   - self.segmentControl.viewControllers = controllers;
96   - }
97   - NSDictionary *dic = @{@"titles":titles};
98   - [[NSNotificationCenter defaultCenter] postNotificationName:@"CNHomeRightViewController" object:nil userInfo:dic];
  53 + NSData *data = [dic mj_JSONData];
  54 + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"homeList"];
  55 + [self dealDictionaryData:data];
99 56  
100 57 } else {
  58 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"homeList"];
  59 + if (data) {
  60 + [self dealDictionaryData:data];
  61 + }
101 62 [AlertViewTool hideHUDView];
102 63 [AlertViewTool showHUDViewText:dic[@"errorMessage"]];
103   - if (!self->_reFreshBtn &&self.data.count == 0) {
104   - [self.view addSubview:self.reFreshBtn];
105   - }
  64 +// if (!self->_reFreshBtn &&self.data.count == 0) {
  65 +// [self.view addSubview:self.reFreshBtn];
  66 +// }
106 67 }
107 68  
108 69  
109 70 } failure:^(NSError *error) {
  71 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"homeList"];
  72 + if (data) {
  73 + [self dealDictionaryData:data];
  74 + }
  75 +
110 76 [AlertViewTool hideHUDView];
111 77 [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")];
112 78 if (!self->_reFreshBtn &&self.data.count == 0) {
... ... @@ -114,6 +80,59 @@
114 80 }
115 81 }];
116 82 }
  83 +-(void)dealDictionaryData:(NSData *)data
  84 +{
  85 + NSDictionary *dic = [data mj_JSONObject];
  86 + NSDictionary *ininav = dic[@"ininav"];
  87 + NSArray *ininavArray = ininav[@"programs"];
  88 +
  89 + if ([ininavArray isKindOfClass:[NSArray class]]) {
  90 + for (NSDictionary *dics in ininavArray) {
  91 + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
  92 + return @{ @"ID" : @"id" ,@"Description" : @"description" };
  93 + }];
  94 +
  95 + NSLog(@"%@",dics);
  96 + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
  97 +
  98 + }
  99 +
  100 + }
  101 +
  102 + NSMutableArray *controllers = [NSMutableArray array];
  103 + NSMutableArray *titles = [NSMutableArray array];
  104 + NSMutableArray *colors = [NSMutableArray array];
  105 + for(int i = 0; i < self.data.count; i++){
  106 + CNHomeModel *model = self.data[i];
  107 + [titles addObject:model.title];
  108 + if (!model.textColor) {
  109 + model.textColor = @"";
  110 + }
  111 + [colors addObject:model.textColor];
  112 + if ([model.cid isEqualToString:@"spzl/djzw/"]) {
  113 + //答记者问
  114 + CNLiveReporterAskedViewController *vc = [[CNLiveReporterAskedViewController alloc] init];
  115 + vc.cid = model.cid;
  116 + [controllers addObject:vc];
  117 +
  118 + }else{
  119 + //其他
  120 + CNLiveHeraldedNewsViewController *vc = [[CNLiveHeraldedNewsViewController alloc] init];
  121 + vc.cid = model.cid;
  122 + [controllers addObject:vc];
  123 + }
  124 +
  125 + }
  126 + if(controllers.count > 0){
  127 + NSMutableArray *textArray = [NSMutableArray array];
  128 + [textArray addObject:titles];
  129 + [textArray addObject:colors];
  130 + self.segmentControl.titles = textArray;
  131 + self.segmentControl.viewControllers = controllers;
  132 + }
  133 + NSDictionary *dic1 = @{@"titles":titles};
  134 + [[NSNotificationCenter defaultCenter] postNotificationName:@"CNHomeRightViewController" object:nil userInfo:dic1];
  135 +}
117 136 - (void)viewWillAppear:(BOOL)animated {
118 137 [super viewWillAppear:animated];
119 138 [self.navigationController setNavigationBarHidden:NO];
... ...
CNLiveScioLive/Pages/Home/外宣要闻/Controller/CNLiveHeraldedNewsViewController.m
... ... @@ -41,6 +41,10 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
41 41 NSDictionary *parameters = @{@"params":categoryId};
42 42  
43 43 if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) {
  44 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid];
  45 + if (data && self.pageNo == 1) {
  46 + [self dealDictionaryData:data];
  47 + }
44 48 [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")];
45 49 [self.tableView.mj_header endRefreshing];
46 50 [self.tableView.mj_footer endRefreshing];
... ... @@ -57,60 +61,18 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
57 61 NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json];
58 62  
59 63 if ([dic[@"errorCode"] isEqualToString:@"0"]) {
60   - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) {
61   - NSArray *lists = dic[@"programs"];
62   - if(self->_pageNo == 1&&lists.count > 0){
63   - [self.data removeAllObjects];
64   -
65   - }
66   - self->_pageNo++;
67   -
68   - for (NSDictionary *dics in lists) {
69   - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
70   - return @{ @"ID" : @"id" ,@"Description" : @"description" };
71   - }];
72   - NSLog(@"%@",dics);
73   - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
74   -
75   - }
76   -
77   - }
78   - NSDictionary *ttName = dic[@"ttName"];
79   - NSArray *programs = ttName[@"programs"];
80   -
81   - if ([programs isKindOfClass:[NSArray class]]) {
82   - [self.banner removeAllObjects];
83   - for (NSDictionary *dics in programs) {
84   - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
85   - return @{ @"ID" : @"id" ,@"Description" : @"description" };
86   - }];
87   -
88   - NSLog(@"%@",dics);
89   - [self.banner addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
90   - }
  64 + NSData *data = [dic mj_JSONData];
  65 + if (self -> _pageNo == 1) {
91 66  
92   - NSMutableArray *titles = [NSMutableArray array];
93   - NSMutableArray *imagesURLStrings = [NSMutableArray array];
94   - for(int i = 0; i < self.banner.count; i++){
95   - CNHomeModel *model = self.banner[i];
96   - [titles addObject:model.title];
97   - [imagesURLStrings addObject:model.img];
98   -
99   - }
100   - if (titles.count!=0) {
101   - self.tableView.tableHeaderView = self.cycleScrollView;
102   - self.cycleScrollView.titlesGroup = titles;
103   - self.cycleScrollView.imageURLStringsGroup = imagesURLStrings;
104   - }
105   - }else
106   - {
107   - if (self.pageNo == 2) {
108   - self.tableView.tableHeaderView = nil;
109   - }
  67 + [[NSUserDefaults standardUserDefaults] setObject:data forKey:self.cid];
110 68 }
  69 + [self dealDictionaryData:data];
111 70 } else {
112 71 [AlertViewTool showHUDViewText:dic[@"errorMessage"]];
113   -
  72 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid];
  73 + if (data &&self.pageNo == 1) {
  74 + [self dealDictionaryData:data];
  75 + }
114 76 }
115 77 [self.tableView.mj_header endRefreshing];
116 78  
... ... @@ -121,11 +83,15 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
121 83 [self.tableView.mj_footer endRefreshing];
122 84  
123 85 }
124   - [self.tableView reloadData];
  86 +
125 87 self->_isRefreshing = NO;
126 88  
127 89  
128 90 } failure:^(NSError *error) {
  91 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid];
  92 + if (data &&self.pageNo == 1) {
  93 + [self dealDictionaryData:data];
  94 + }
129 95 [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")];
130 96 self->_isRefreshing = NO;
131 97 [AlertViewTool hideHUDView];
... ... @@ -133,6 +99,65 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
133 99 }];
134 100 }
135 101  
  102 +-(void)dealDictionaryData:(NSData *)data
  103 +{
  104 + NSDictionary *dic = [data mj_JSONObject];
  105 + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) {
  106 + NSArray *lists = dic[@"programs"];
  107 + if(self->_pageNo == 1&&lists.count > 0){
  108 + [self.data removeAllObjects];
  109 +
  110 + }
  111 +
  112 +
  113 + self->_pageNo++;
  114 +
  115 + for (NSDictionary *dics in lists) {
  116 + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
  117 + return @{ @"ID" : @"id" ,@"Description" : @"description" };
  118 + }];
  119 + NSLog(@"%@",dics);
  120 + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
  121 +
  122 + }
  123 +
  124 + }
  125 + NSDictionary *ttName = dic[@"ttName"];
  126 + NSArray *programs = ttName[@"programs"];
  127 +
  128 + if ([programs isKindOfClass:[NSArray class]]) {
  129 + [self.banner removeAllObjects];
  130 + for (NSDictionary *dics in programs) {
  131 + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
  132 + return @{ @"ID" : @"id" ,@"Description" : @"description" };
  133 + }];
  134 +
  135 + NSLog(@"%@",dics);
  136 + [self.banner addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
  137 + }
  138 +
  139 + NSMutableArray *titles = [NSMutableArray array];
  140 + NSMutableArray *imagesURLStrings = [NSMutableArray array];
  141 + for(int i = 0; i < self.banner.count; i++){
  142 + CNHomeModel *model = self.banner[i];
  143 + [titles addObject:model.title];
  144 + [imagesURLStrings addObject:model.img];
  145 +
  146 + }
  147 + if (titles.count!=0) {
  148 + self.tableView.tableHeaderView = self.cycleScrollView;
  149 + self.cycleScrollView.titlesGroup = titles;
  150 + self.cycleScrollView.imageURLStringsGroup = imagesURLStrings;
  151 + }
  152 + }else
  153 + {
  154 + if (self.pageNo == 2) {
  155 + self.tableView.tableHeaderView = nil;
  156 + }
  157 + }
  158 + [self.tableView reloadData];
  159 +}
  160 +
136 161 - (void)loadUpData{
137 162 _pageNo = 1;
138 163 if(!_isRefreshing){
... ...
CNLiveScioLive/Pages/Home/答记者问/Controller/CNLiveReporterAskedViewController.m
... ... @@ -36,6 +36,10 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
36 36 NSDictionary *parameters = @{@"params":categoryId};
37 37  
38 38 if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) {
  39 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid];
  40 + if (data &&self.pageNo == 1) {
  41 + [self dealDictionaryData:data];
  42 + }
39 43 [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")];
40 44 [self.tableView.mj_header endRefreshing];
41 45 [self.tableView.mj_footer endRefreshing];
... ... @@ -52,29 +56,15 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
52 56 NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json];
53 57  
54 58 if ([dic[@"errorCode"] isEqualToString:@"0"]) {
55   - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) {
56   - NSArray *lists = dic[@"programs"];
57   -
58   - if(self->_pageNo == 1&&lists.count > 0){
59   - [self.data removeAllObjects];
60   -
61   - }
62   - self->_pageNo++;
63   -
64   - for (NSDictionary *dics in lists) {
65   - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
66   - return @{ @"ID" : @"id" ,@"Description" : @"description" };
67   - }];
68   -
69   - NSLog(@"%@",dics);
70   - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
71   -
72   - }
73   -
74   - }
  59 + NSData *data = [dic mj_JSONData];
  60 + [[NSUserDefaults standardUserDefaults] setObject:data forKey:self.cid];
  61 + [self dealDictionaryData:data];
75 62  
76 63 } else {
77   -
  64 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid];
  65 + if (data &&self.pageNo == 1) {
  66 + [self dealDictionaryData:data];
  67 + }
78 68 [AlertViewTool showHUDViewText:dic[@"errorMessage"]];
79 69  
80 70 }
... ... @@ -87,11 +77,15 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
87 77 [self.tableView.mj_footer endRefreshing];
88 78  
89 79 }
90   - [self.tableView reloadData];
  80 +
91 81 self->_isRefreshing = NO;
92 82  
93 83  
94 84 } failure:^(NSError *error) {
  85 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid];
  86 + if (data &&self.pageNo == 1) {
  87 + [self dealDictionaryData:data];
  88 + }
95 89 [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")];
96 90 self->_isRefreshing = NO;
97 91 [AlertViewTool hideHUDView];
... ... @@ -99,6 +93,32 @@ static NSString *newsUpPicTableViewCell = @&quot;CNLiveNewsUpPicTableViewCell&quot;;
99 93 }];
100 94 }
101 95  
  96 +-(void)dealDictionaryData:(NSData *)data
  97 +{
  98 + NSDictionary *dic = [data mj_JSONObject];
  99 + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) {
  100 + NSArray *lists = dic[@"programs"];
  101 +
  102 + if(self->_pageNo == 1&&lists.count > 0){
  103 + [self.data removeAllObjects];
  104 +
  105 + }
  106 + self->_pageNo++;
  107 +
  108 + for (NSDictionary *dics in lists) {
  109 + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
  110 + return @{ @"ID" : @"id" ,@"Description" : @"description" };
  111 + }];
  112 +
  113 + NSLog(@"%@",dics);
  114 + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]];
  115 +
  116 + }
  117 +
  118 + }
  119 + [self.tableView reloadData];
  120 +}
  121 +
102 122 - (void)loadUpData{
103 123 _pageNo = 1;
104 124 if(!_isRefreshing){
... ...
CNLiveScioLive/Pages/Live/Controller/CNLiveViewController.m
... ... @@ -42,6 +42,11 @@ static NSString *indicatorTableViewCell = @&quot;CNLiveIndicatorTableViewCell&quot;;
42 42 - (void)getData{
43 43 [MBProgressHUD showHUDAddedTo:self.view animated:YES];
44 44 if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) {
  45 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"LiveHeader"];
  46 + if (data) {
  47 + [self dealDictionaryData:data];
  48 + }
  49 + [MBProgressHUD hideHUDForView:self.view animated:YES];
45 50 [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")];
46 51 return;
47 52 }
... ... @@ -51,20 +56,31 @@ static NSString *indicatorTableViewCell = @&quot;CNLiveIndicatorTableViewCell&quot;;
51 56  
52 57 // 请求成功,解析数据
53 58 NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json];
54   - [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
55   - return @{ @"ID" : @"id" ,@"Description" : @"description" };
56   - }];
57   - self.liveModel = [CNLiveModel mj_objectWithKeyValues:dic];
58   - self.header.model = [CNLiveModel mj_objectWithKeyValues:dic];
59   - [self.tableView reloadData];
  59 + NSData *data = [dic mj_JSONData];
  60 + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"LiveHeader"];
  61 + [self dealDictionaryData:data];
60 62 // self->_isLoaded = YES;
61 63  
62 64 } failure:^(NSError *error) {
  65 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"LiveHeader"];
  66 + if (data) {
  67 + [self dealDictionaryData:data];
  68 + }
63 69 [AlertViewTool showHUDAddedToView:self.view text:CustomStr(@"ServerBusy")];
64 70 [MBProgressHUD hideHUDForView:self.view animated:YES];
65 71  
66 72 }];
67 73 }
  74 +-(void)dealDictionaryData:(NSData *)data
  75 +{
  76 + NSDictionary *dic = [data mj_JSONObject];
  77 + [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
  78 + return @{ @"ID" : @"id" ,@"Description" : @"description" };
  79 + }];
  80 + self.liveModel = [CNLiveModel mj_objectWithKeyValues:dic];
  81 + self.header.model = [CNLiveModel mj_objectWithKeyValues:dic];
  82 + [self.tableView reloadData];
  83 +}
68 84 - (void)loadData{
69 85 NSString *strUrl = REQUESTURL(@"gxb/api/cataloglatest");
70 86 NSLog(@"%@",strUrl);
... ... @@ -74,6 +90,10 @@ static NSString *indicatorTableViewCell = @&quot;CNLiveIndicatorTableViewCell&quot;;
74 90 NSLog(@"%@",parameters);
75 91  
76 92 if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) {
  93 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"liveList"];
  94 + if (data && self.pageNo == 1) {
  95 + [self dealDictionaryListData:data];
  96 + }
77 97 [AlertViewTool showHUDAddedToView:self.view text:CustomStr(@"NetworkiInterruption")];
78 98 [self.tableView.mj_header endRefreshing];
79 99 [self.tableView.mj_footer endRefreshing];
... ... @@ -90,38 +110,17 @@ static NSString *indicatorTableViewCell = @&quot;CNLiveIndicatorTableViewCell&quot;;
90 110 NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json];
91 111  
92 112 if ([dic[@"errorCode"] isEqualToString:@"0"]) {
93   -// if ([dic[@"programs"] isKindOfClass:[NSDictionary class]] && [dic[@"programs"] count]) {
94   -// NSDictionary *dics = dic[@"programs"];
95   -// [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
96   -// return @{ @"ID" : @"id" ,@"Description" : @"description" };
97   -// }];
98   -// [self.data addObject:[CNLiveModel mj_objectWithKeyValues:dics]];
99   -// }
100   -
101   - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) {
102   - self->_newsArray = dic[@"programs"];
103   - NSArray *lists = dic[@"programs"];
104   -
105   - if(self->_pageNo == 1&&lists.count > 0){
106   - [self.data removeAllObjects];
107   -
108   - }
109   - self->_pageNo++;
110   -
111   - for (NSDictionary *dics in lists) {
112   - [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
113   - return @{ @"ID" : @"id" ,@"Description" : @"description" };
114   - }];
115   -
116   - NSLog(@"%@",dics);
117   - [self.data addObject:[CNLiveModel mj_objectWithKeyValues:dics]];
118   -
119   - }
120   -
  113 + NSData *data = [dic mj_JSONData];
  114 + if ( self.pageNo ==1 ) {
  115 + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"liveList"];
121 116 }
122   -
  117 + [self dealDictionaryListData:data];
123 118  
124 119 } else {
  120 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"liveList"];
  121 + if (data && self.pageNo == 1) {
  122 + [self dealDictionaryListData:data];
  123 + }
125 124 [AlertViewTool showHUDAddedToView:self.view text:dic[@"errorMessage"]];
126 125  
127 126 }
... ... @@ -134,17 +133,46 @@ static NSString *indicatorTableViewCell = @&quot;CNLiveIndicatorTableViewCell&quot;;
134 133 [self.tableView.mj_footer endRefreshing];
135 134  
136 135 }
137   - [self.tableView reloadData];
  136 +
138 137 self->_isRefreshing = NO;
139 138  
140 139  
141 140 } failure:^(NSError *error) {
  141 + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"liveList"];
  142 + if (data && self.pageNo == 1) {
  143 + [self dealDictionaryListData:data];
  144 + }
142 145 self->_isRefreshing = NO;
143 146 [AlertViewTool hideHUDView];
144 147 [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")];
145 148  
146 149 }];
147 150 }
  151 +-(void)dealDictionaryListData:(NSData *)data{
  152 + NSDictionary *dic = [data mj_JSONObject];
  153 + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) {
  154 + self->_newsArray = dic[@"programs"];
  155 + NSArray *lists = dic[@"programs"];
  156 +
  157 + if(self->_pageNo == 1&&lists.count > 0){
  158 + [self.data removeAllObjects];
  159 +
  160 + }
  161 + self->_pageNo++;
  162 +
  163 + for (NSDictionary *dics in lists) {
  164 + [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
  165 + return @{ @"ID" : @"id" ,@"Description" : @"description" };
  166 + }];
  167 +
  168 + NSLog(@"%@",dics);
  169 + [self.data addObject:[CNLiveModel mj_objectWithKeyValues:dics]];
  170 +
  171 + }
  172 +
  173 + }
  174 + [self.tableView reloadData];
  175 +}
148 176 - (void)loadYGData {
149 177 NSString *strUrl = REQUESTURL(@"gxb/api/cataloglatest");
150 178 //NSLog(@"%@",strUrl);
... ...
CNLiveScioLive/Pages/Live/View/CNLiveHeaderView.m
... ... @@ -29,7 +29,6 @@
29 29 _backgroundImage.contentMode = UIViewContentModeScaleAspectFill;
30 30 _backgroundImage.layer.masksToBounds = YES;
31 31 _backgroundImage.layer.cornerRadius = 2.0;
32   - _backgroundImage.image = [UIImage imageNamed:@"cnlive_placeholder"];
33 32 [self addSubview:_backgroundImage];
34 33  
35 34 _playImage = [UIButton buttonWithType:UIButtonTypeCustom];
... ... @@ -61,7 +60,7 @@
61 60 }
62 61 - (void)setModel:(CNLiveModel *)model{
63 62 _model = model;
64   - [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]];
  63 + [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"placeholder"]];
65 64 switch ([model.status intValue]) {
66 65 case 0: {
67 66 _stateLabel.text = @"直播准备";
... ...