JXRoomMemberListVC.m 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577
  1. //
  2. // JXRoomMemberListVC.m
  3. // shiku_im
  4. //
  5. // Created by p on 2018/7/3.
  6. // Copyright © 2018年 Reese. All rights reserved.
  7. //
  8. #import "JXRoomMemberListVC.h"
  9. #import "roomData.h"
  10. #import "JXRoomMemberListCell.h"
  11. #import "BMChineseSort.h"
  12. #import "JXUserInfoVC.h"
  13. #import "JXActionSheetVC.h"
  14. #import "JXInputValueVC.h"
  15. @interface JXRoomMemberListVC ()<UITextFieldDelegate,LXActionSheetDelegate, UIAlertViewDelegate,JXActionSheetVCDelegate>
  16. @property (nonatomic, strong) NSMutableArray *array;
  17. @property (nonatomic, strong) NSMutableArray *searchArray;
  18. @property (nonatomic, strong) UITextField *seekTextField;
  19. //排序后的出现过的拼音首字母数组
  20. @property(nonatomic,strong)NSMutableArray *indexArray;
  21. //排序好的结果数组
  22. @property(nonatomic,strong)NSMutableArray *letterResultArr;
  23. @property (nonatomic, strong) memberData *currentMember;
  24. @property (nonatomic, strong) JXUserObject *user;
  25. @end
  26. @implementation JXRoomMemberListVC
  27. - (void)viewDidLoad {
  28. [super viewDidLoad];
  29. // Do any additional setup after loading the view.
  30. self.heightHeader = JX_SCREEN_TOP;
  31. self.heightFooter = 0;
  32. self.isGotoBack = YES;
  33. //self.view.frame = g_window.bounds;
  34. // self.isShowFooterPull = NO;
  35. [self createHeadAndFoot];
  36. _searchArray = [NSMutableArray array];
  37. [self.tableView registerClass:[JXRoomMemberListCell class] forCellReuseIdentifier:@"JXRoomMemberListCell"];
  38. [self customSearchTextField];
  39. self.user = [[JXUserObject sharedInstance] getUserById:self.room.roomJid];
  40. _array = (NSMutableArray *)[memberData fetchAllMembers:self.room.roomId sortByName:NO];
  41. if (_array.count > 0) {
  42. if ([self.user.joinTime timeIntervalSince1970] <= 0) {
  43. memberData *member = _array.lastObject;
  44. self.user.joinTime = [NSDate dateWithTimeIntervalSince1970:member.createTime];
  45. }
  46. [self refresh];
  47. }else {
  48. self.user.joinTime = [NSDate dateWithTimeIntervalSince1970:0];
  49. [self getServerData];
  50. }
  51. [self scrollToPageUp];
  52. }
  53. - (void)scrollToPageUp {
  54. self.user.joinTime = [NSDate dateWithTimeIntervalSince1970:0];
  55. [self getServerData];
  56. }
  57. - (void)scrollToPageDown {
  58. [self getServerData];
  59. }
  60. - (void)getServerData {
  61. [g_server roomMemberGetMemberListByPageWithRoomId:self.room.roomId joinTime:[self.user.joinTime timeIntervalSince1970] toView:self];
  62. }
  63. - (void)refresh {
  64. _array = (NSMutableArray *)[memberData fetchAllMembers:self.room.roomId sortByName:NO];
  65. //选择拼音 转换的 方法
  66. BMChineseSortSetting.share.sortMode = 2; // 1或2
  67. //排序 Person对象
  68. [BMChineseSort sortAndGroup:_array key:@"userNickName" finish:^(bool isSuccess, NSMutableArray *unGroupArr, NSMutableArray *sectionTitleArr, NSMutableArray<NSMutableArray *> *sortedObjArr) {
  69. if (isSuccess) {
  70. self.indexArray = sectionTitleArr;
  71. self.letterResultArr = sortedObjArr;
  72. [_table reloadData];
  73. }
  74. }];
  75. }
  76. - (void)customSearchTextField{
  77. //搜索输入框
  78. UIView *backView = [[UIView alloc] initWithFrame:CGRectMake(0, JX_SCREEN_TOP, JX_SCREEN_WIDTH, 55)];
  79. // backView.backgroundColor = HEXCOLOR(0xf0f0f0);
  80. [self.view addSubview:backView];
  81. _seekTextField = [[UITextField alloc] initWithFrame:CGRectMake(15, 10, backView.frame.size.width - 30, 35)];
  82. _seekTextField.placeholder = Localized(@"JX_EnterKeyword");
  83. _seekTextField.textColor = [UIColor blackColor];
  84. [_seekTextField setFont:SYSFONT(14)];
  85. _seekTextField.backgroundColor = HEXCOLOR(0xf0f0f0);
  86. UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"card_search"]];
  87. UIView *leftView = [[UIView alloc ]initWithFrame:CGRectMake(0, 0, 30, 30)];
  88. // imageView.center = CGPointMake(leftView.frame.size.width/2, leftView.frame.size.height/2);
  89. imageView.center = leftView.center;
  90. [leftView addSubview:imageView];
  91. _seekTextField.leftView = leftView;
  92. _seekTextField.leftViewMode = UITextFieldViewModeAlways;
  93. _seekTextField.borderStyle = UITextBorderStyleNone;
  94. _seekTextField.layer.masksToBounds = YES;
  95. _seekTextField.layer.cornerRadius = 3.f;
  96. _seekTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
  97. _seekTextField.delegate = self;
  98. _seekTextField.returnKeyType = UIReturnKeyGoogle;
  99. [backView addSubview:_seekTextField];
  100. [_seekTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
  101. self.tableView.tableHeaderView = backView;
  102. }
  103. - (void) textFieldDidChange:(UITextField *)textField {
  104. if (textField.text.length <= 0) {
  105. [self.tableView reloadData];
  106. return;
  107. }
  108. [_searchArray removeAllObjects];
  109. for (NSInteger i = 0; i < _array.count; i ++) {
  110. memberData *data = _array[i];
  111. JXUserObject *allUser = [[JXUserObject alloc] init];
  112. allUser = [allUser getUserById:[NSString stringWithFormat:@"%ld",data.userId]];
  113. NSString *name = [NSString string];
  114. if ([[NSString stringWithFormat:@"%ld",_room.userId] isEqualToString:MY_USER_ID]) {
  115. name = data.lordRemarkName ? data.lordRemarkName : allUser.remarkName.length > 0 ? allUser.remarkName : data.userNickName;
  116. }else {
  117. name = allUser.remarkName.length > 0 ? allUser.remarkName : data.userNickName;
  118. }
  119. NSString *userStr = [name lowercaseString];
  120. NSString *textStr = [textField.text lowercaseString];
  121. if ([userStr rangeOfString:textStr].location != NSNotFound) {
  122. [_searchArray addObject:data];
  123. }
  124. }
  125. [self.tableView reloadData];
  126. }
  127. #pragma mark ---------tableView协议----------------
  128. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  129. {
  130. if (_seekTextField.text.length > 0) {
  131. return 1;
  132. }
  133. return [self.indexArray count];
  134. }
  135. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
  136. if (_seekTextField.text.length > 0) {
  137. return Localized(@"JXFriend_searchTitle");
  138. }
  139. return [self.indexArray objectAtIndex:section];
  140. }
  141. -(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
  142. UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
  143. header.tintColor = HEXCOLOR(0xF2F2F2);
  144. [header.textLabel setTextColor:HEXCOLOR(0x999999)];
  145. [header.textLabel setFont:SYSFONT(15)];
  146. }
  147. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  148. {
  149. if (_seekTextField.text.length > 0) {
  150. return _searchArray.count;
  151. }
  152. return [(NSArray *)[self.letterResultArr objectAtIndex:section] count];
  153. }
  154. -(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
  155. if (_seekTextField.text.length > 0) {
  156. return nil;
  157. }
  158. return self.indexArray;
  159. }
  160. - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
  161. return index;
  162. }
  163. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  164. return 59;
  165. }
  166. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  167. {
  168. JXRoomMemberListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"JXRoomMemberListCell" forIndexPath:indexPath];
  169. cell.curManager = [NSString stringWithFormat:@"%ld",_room.userId];
  170. memberData *data;
  171. if (_seekTextField.text.length > 0) {
  172. data = _searchArray[indexPath.row];
  173. }else{
  174. data = [[self.letterResultArr objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
  175. }
  176. // memberData *d = [self.room getMember:[NSString stringWithFormat:@"%ld",data.userId]];
  177. cell.room = self.room;
  178. cell.role = [data.role intValue];
  179. cell.data = data;
  180. cell.onlinStatus.text = [data.onlinestate isEqualToString:@"1"] ? @"在线":@"离线";
  181. [self doAutoScroll:indexPath];
  182. if (indexPath.row == [(NSArray *)[self.letterResultArr objectAtIndex:indexPath.section] count]-1) {
  183. cell.lineView.frame = CGRectMake(cell.lineView.frame.origin.x, cell.lineView.frame.origin.y, cell.lineView.frame.size.width,0);
  184. }else {
  185. cell.lineView.frame = CGRectMake(cell.lineView.frame.origin.x, cell.lineView.frame.origin.y, cell.lineView.frame.size.width,LINE_WH);
  186. }
  187. return cell;
  188. }
  189. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  190. {
  191. [super tableView:tableView didSelectRowAtIndexPath:indexPath];
  192. memberData *data = [self.room getMember:g_myself.userId];
  193. if (([data.role intValue] != 1 && [data.role intValue] != 2) && !self.room.allowSendCard) {
  194. [g_App showAlert:Localized(@"JX_NotAllowMembersSeeInfo")];
  195. return;
  196. }
  197. memberData * member;
  198. if (_seekTextField.text.length > 0) {
  199. member = _searchArray[indexPath.row];
  200. }else{
  201. member = [[self.letterResultArr objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
  202. }
  203. switch (self.type) {
  204. case Type_Default:{
  205. JXUserInfoVC* userVC = [JXUserInfoVC alloc];
  206. userVC.userId = [NSString stringWithFormat:@"%ld",member.userId];
  207. userVC.fromAddType = 3;
  208. userVC = [userVC init];
  209. [g_navigation pushViewController:userVC animated:YES];
  210. }
  211. break;
  212. case Type_NotTalk:{
  213. memberData *selfData = [self.room getMember:MY_USER_ID];
  214. memberData *d = [self.room getMember:[NSString stringWithFormat:@"%ld",member.userId]];
  215. if ([selfData.role intValue] == 1) {
  216. if ([d.role intValue] == 1) {
  217. [g_App showAlert:@"不能禁言群主"];
  218. return;
  219. }
  220. }else {
  221. if ([d.role intValue] == 1 || [d.role intValue] == 2) {
  222. [g_App showAlert:Localized(@"JX_Can'tBanManager")];
  223. return;
  224. }
  225. }
  226. if ([d.role intValue] == 4) {
  227. [g_App showAlert:Localized(@"JX_YouCan'tKeepYourMouthShut")];
  228. return;
  229. }
  230. if ([d.role intValue] == 5) {
  231. [g_App showAlert:@"不能禁言监控人"];
  232. return;
  233. }
  234. _currentMember = member;
  235. [self onDisableSay:nil];
  236. }
  237. break;
  238. case Type_DelMember:{
  239. memberData *data = [self.room getMember:g_myself.userId];
  240. if ([data.role intValue] == 1) {
  241. if ([member.role intValue] == 1) {
  242. [g_App showAlert:Localized(@"JX_Can'tDeleteManager")];
  243. return;
  244. }
  245. }
  246. if ([data.role intValue] == 2) {
  247. if ([member.role intValue] == 1 || [member.role intValue] == 2) {
  248. [g_App showAlert:Localized(@"JX_Can'tDeleteManager")];
  249. return;
  250. }
  251. }
  252. _currentMember = member;
  253. JXUserObject *allUser = [[JXUserObject alloc] init];
  254. allUser = [allUser getUserById:[NSString stringWithFormat:@"%ld",member.userId]];
  255. NSString *name;
  256. if ([[NSString stringWithFormat:@"%ld",_room.userId] isEqualToString:MY_USER_ID]) {
  257. name = member.lordRemarkName.length > 0 ? member.lordRemarkName : allUser.remarkName.length > 0 ? allUser.remarkName : member.userNickName;
  258. }else {
  259. name = allUser.remarkName.length > 0 ? allUser.remarkName : member.userNickName;
  260. }
  261. [g_App showAlert:[NSString stringWithFormat:@"%@ %@",Localized(@"JX_DetermineToDelete"),name] delegate:self tag:2457 onlyConfirm:NO];
  262. }
  263. break;
  264. case Type_AddNotes:{
  265. JXUserObject *allUser = [[JXUserObject alloc] init];
  266. allUser = [allUser getUserById:[NSString stringWithFormat:@"%ld",member.userId]];
  267. NSString *name = [NSString string];
  268. if ([[NSString stringWithFormat:@"%ld",_room.userId] isEqualToString:MY_USER_ID]) {
  269. name = member.lordRemarkName ? member.lordRemarkName : allUser.remarkName.length > 0 ? allUser.remarkName : member.userNickName;
  270. }else {
  271. name = allUser.remarkName.length > 0 ? allUser.remarkName : member.userNickName;
  272. }
  273. JXInputValueVC* vc = [JXInputValueVC alloc];
  274. vc.value = name;
  275. vc.userId = [NSString stringWithFormat:@"%ld",member.userId];
  276. vc.title = Localized(@"JXRoomMemberVC_UpdateNickName");
  277. vc.delegate = self;
  278. vc.didSelect = @selector(onSaveNickName:);
  279. vc.isLimit = YES;
  280. vc = [vc init];
  281. [g_navigation pushViewController:vc animated:YES];
  282. }
  283. break;
  284. default:
  285. break;
  286. }
  287. }
  288. -(void)onSaveNickName:(JXInputValueVC*)vc{
  289. if (self.delegate && [self.delegate respondsToSelector:@selector(roomMemberList:addNotesVC:)]) {
  290. memberData* p = [_room getMember:vc.userId];
  291. if ([p.role intValue] == 1) {
  292. p.userNickName = vc.value;
  293. }else {
  294. p.lordRemarkName = vc.value;
  295. }
  296. [p update];
  297. _array = (NSMutableArray *)[memberData fetchAllMembers:self.room.roomId sortByName:NO];
  298. //选择拼音 转换的 方法
  299. BMChineseSortSetting.share.sortMode = 2; // 1或2
  300. //排序 Person对象
  301. [BMChineseSort sortAndGroup:_array key:@"userNickName" finish:^(bool isSuccess, NSMutableArray *unGroupArr, NSMutableArray *sectionTitleArr, NSMutableArray<NSMutableArray *> *sortedObjArr) {
  302. if (isSuccess) {
  303. self.indexArray = sectionTitleArr;
  304. self.letterResultArr = sortedObjArr;
  305. [_table reloadData];
  306. }
  307. }];
  308. // //根据Person对象的 name 属性 按中文 对 Person数组 排序
  309. // self.indexArray = [BMChineseSort IndexWithArray:_array Key:@"userNickName"];
  310. // self.letterResultArr = [BMChineseSort sortObjectArray:_array Key:@"userNickName"];
  311. [self.delegate roomMemberList:self addNotesVC:vc];
  312. }
  313. }
  314. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
  315. if (alertView.tag == 2457) {
  316. if (buttonIndex == 1) {
  317. [self onDelete:nil];
  318. }
  319. }
  320. }
  321. -(void)onDisableSay:(JXImageView*)sender{
  322. // _disable = (int)sender.tag;
  323. // LXActionSheet* _menu = [[LXActionSheet alloc]
  324. // initWithTitle:nil
  325. // delegate:self
  326. // cancelButtonTitle:nil
  327. // destructiveButtonTitle:Localized(@"JX_Cencal")
  328. // otherButtonTitles:@[Localized(@"JXAlert_NotGag"),Localized(@"JXAlert_GagTenMinute"),Localized(@"JXAlert_GagOneHour"),Localized(@"JXAlert_GagOne"),Localized(@"JXAlert_GagThere"),Localized(@"JXAlert_GagOneWeek"),Localized(@"JXAlert_GagOver")]];
  329. // [g_window addSubview:_menu];
  330. // JXActionSheetVC *actionVC = [[JXActionSheetVC alloc] initWithImages:@[] names:@[Localized(@"JXAlert_NotGag"),Localized(@"JXAlert_GagTenMinute"),Localized(@"JXAlert_GagOneHour"),Localized(@"JXAlert_GagOne"),Localized(@"JXAlert_GagThere"),Localized(@"JXAlert_GagOneWeek"),Localized(@"JXAlert_GagFifteen")]];
  331. //Localized(@"JXAlert_NotGag")
  332. JXActionSheetVC *actionVC = [[JXActionSheetVC alloc] initWithImages:@[] names:@[@"取消禁言",@"开启禁言"]];
  333. actionVC.delegate = self;
  334. [self presentViewController:actionVC animated:NO completion:nil];
  335. }
  336. - (void)actionSheet:(JXActionSheetVC *)actionSheet didButtonWithIndex:(NSInteger)index {
  337. NSTimeInterval n = [[NSDate date] timeIntervalSince1970];
  338. memberData* member = _currentMember;
  339. switch (index) {
  340. case 0:
  341. member.talkTime = 0;
  342. break;
  343. case 1:
  344. member.talkTime = 10*60+n;
  345. break;
  346. case 2:
  347. member.talkTime = 1*3600+n;
  348. break;
  349. case 3:
  350. member.talkTime = 24*3600+n;
  351. break;
  352. case 4:
  353. member.talkTime = 3*24*3600+n;
  354. break;
  355. case 5:
  356. member.talkTime = 7*24*3600+n;
  357. break;
  358. case 6:
  359. member.talkTime = 15*24*3600+n;
  360. break;
  361. default:
  362. break;
  363. }
  364. [g_server setDisableSay:self.room.roomId member:member toView:self];
  365. member = nil;
  366. }
  367. //- (void)didClickOnButtonIndex:(LXActionSheet*)sender buttonIndex:(int)buttonIndex{
  368. // if(buttonIndex==0)
  369. // return;
  370. // NSTimeInterval n = [[NSDate date] timeIntervalSince1970];
  371. // memberData* member = _currentMember;
  372. // switch (buttonIndex) {
  373. // case 1:
  374. // member.talkTime = 0;
  375. // break;
  376. // case 2:
  377. // member.talkTime = 10*60+n;
  378. // break;
  379. // case 3:
  380. // member.talkTime = 1*3600+n;
  381. // break;
  382. // case 4:
  383. // member.talkTime = 24*3600+n;
  384. // break;
  385. // case 5:
  386. // member.talkTime = 3*24*3600+n;
  387. // break;
  388. // case 6:
  389. // member.talkTime = 7*24*3600+n;
  390. // break;
  391. // case 7:
  392. // member.talkTime = 3000*24*3600+n;
  393. // break;
  394. // }
  395. // [g_server setDisableSay:self.room.roomId member:member toView:self];
  396. //
  397. //// _modifyType = kRoomRemind_DisableSay;
  398. //// _toUserId = [NSString stringWithFormat:@"%ld",member.userId];
  399. //// _toUserName = member.userNickName;
  400. //
  401. //
  402. // member = nil;
  403. //}
  404. // 群内踢人
  405. -(void)onDelete:(JXImageView*)sender{
  406. [g_server delRoomMember:self.room.roomId userId:_currentMember.userId toView:self];
  407. }
  408. -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
  409. [_wait stop];
  410. if( [aDownload.action isEqualToString:act_roomMemberSet] ){
  411. [g_App showAlert:Localized(@"JXAlert_SetOK")];
  412. }
  413. if( [aDownload.action isEqualToString:act_roomMemberDel] ){
  414. //在xmpp中删除成员
  415. // [self.chatRoom removeUser:_currentMember];
  416. [self.room.members removeObject:_currentMember];
  417. [_currentMember remove];
  418. if ([self.delegate respondsToSelector:@selector(roomMemberList:delMember:)]) {
  419. [self.delegate roomMemberList:self delMember:_currentMember];
  420. }
  421. _array = (NSMutableArray *)[memberData fetchAllMembers:self.room.roomId sortByName:NO];
  422. //选择拼音 转换的 方法
  423. BMChineseSortSetting.share.sortMode = 2; // 1或2
  424. //排序 Person对象
  425. [BMChineseSort sortAndGroup:_array key:@"userNickName" finish:^(bool isSuccess, NSMutableArray *unGroupArr, NSMutableArray *sectionTitleArr, NSMutableArray<NSMutableArray *> *sortedObjArr) {
  426. if (isSuccess) {
  427. self.indexArray = sectionTitleArr;
  428. self.letterResultArr = sortedObjArr;
  429. [_table reloadData];
  430. }
  431. }];
  432. // //根据Person对象的 name 属性 按中文 对 Person数组 排序
  433. // self.indexArray = [BMChineseSort IndexWithArray:_array Key:@"userNickName"];
  434. // self.letterResultArr = [BMChineseSort sortObjectArray:_array Key:@"userNickName"];
  435. [g_App showAlert:Localized(@"JXAlert_DeleteOK")];
  436. }
  437. if ([aDownload.action isEqualToString:act_roomMemberGetMemberListByPage]) {
  438. [self stopLoading];
  439. if (array1.count < kRoomMemberListNum) {
  440. self.isShowFooterPull = NO;
  441. }
  442. NSDictionary *lastDict = array1.lastObject;
  443. self.user.joinTime = [NSDate dateWithTimeIntervalSince1970:[lastDict[@"createTime"] longValue]];
  444. [self.user updateJoinTime];
  445. for (NSDictionary *member in array1) {
  446. memberData* option = [[memberData alloc] init];
  447. [option getDataFromDict:member];
  448. option.roomId = self.room.roomId;
  449. [option insert];
  450. }
  451. [self refresh];
  452. }
  453. }
  454. -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
  455. [_wait stop];
  456. return show_error;
  457. }
  458. -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
  459. [_wait stop];
  460. return show_error;
  461. }
  462. -(void) didServerConnectStart:(JXConnection*)aDownload{
  463. [_wait start];
  464. }
  465. - (void)didReceiveMemoryWarning {
  466. [super didReceiveMemoryWarning];
  467. // Dispose of any resources that can be recreated.
  468. }
  469. /*
  470. #pragma mark - Navigation
  471. // In a storyboard-based application, you will often want to do a little preparation before navigation
  472. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  473. // Get the new view controller using [segue destinationViewController].
  474. // Pass the selected object to the new view controller.
  475. }
  476. */
  477. @end