Commit 7fc917f3b6bf31112dc61d5d95884d3d7861da19

Authored by nvtu11790@gmail.com
1 parent 0db82ed0b5

add get member of group API, join group API.

Showing 15 changed files with 282 additions and 47 deletions Side-by-side Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
... ... @@ -57,6 +57,7 @@
57 57 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
58 58 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
59 59 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
  60 + E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9497FD41F46EC1100E6AF8D /* MemberObject.m */; };
60 61 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
61 62 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
62 63 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
... ... @@ -181,6 +182,8 @@
181 182 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
182 183 E9373E4B1F361A230059355A /* HistoryGraphObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryGraphObject.h; sourceTree = "<group>"; };
183 184 E9373E4C1F361A230059355A /* HistoryGraphObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryGraphObject.m; sourceTree = "<group>"; };
  185 + E9497FD31F46EC1100E6AF8D /* MemberObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemberObject.h; sourceTree = "<group>"; };
  186 + E9497FD41F46EC1100E6AF8D /* MemberObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MemberObject.m; sourceTree = "<group>"; };
184 187 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
185 188 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
186 189 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
... ... @@ -281,6 +284,8 @@
281 284 E9D909201F3D559D004CF99F /* TweetObject.m */,
282 285 E933E6721F3E0E4E002926F5 /* GroupObject.h */,
283 286 E933E6731F3E0E4E002926F5 /* GroupObject.m */,
  287 + E9497FD31F46EC1100E6AF8D /* MemberObject.h */,
  288 + E9497FD41F46EC1100E6AF8D /* MemberObject.m */,
284 289 );
285 290 name = Model;
286 291 sourceTree = "<group>";
... ... @@ -308,6 +313,7 @@
308 313 6E84E3981F27A703001EB88E /* LifeLogUITests */,
309 314 DE8269E957EA47CD771BAB33 /* Pods */,
310 315 020C1721B642EF36F31E1BB4 /* Frameworks */,
  316 + 783929CF869F5081762B3DCA /* Products */,
311 317 );
312 318 sourceTree = "<group>";
313 319 };
... ... @@ -430,7 +436,7 @@
430 436 6E84E3AC1F27A954001EB88E /* SNS */ = {
431 437 isa = PBXGroup;
432 438 children = (
433   - E933E6751F4050E6002926F5 /* GrouDetail */,
  439 + E933E6751F4050E6002926F5 /* GroupDetail */,
434 440 E933E6671F3E0479002926F5 /* SeachGroup */,
435 441 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
436 442 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
... ... @@ -491,6 +497,13 @@
491 497 name = Common;
492 498 sourceTree = "<group>";
493 499 };
  500 + 783929CF869F5081762B3DCA /* Products */ = {
  501 + isa = PBXGroup;
  502 + children = (
  503 + );
  504 + name = Products;
  505 + sourceTree = "<group>";
  506 + };
494 507 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
495 508 isa = PBXGroup;
496 509 children = (
497 510  
... ... @@ -547,14 +560,14 @@
547 560 name = SeachGroup;
548 561 sourceTree = "<group>";
549 562 };
550   - E933E6751F4050E6002926F5 /* GrouDetail */ = {
  563 + E933E6751F4050E6002926F5 /* GroupDetail */ = {
551 564 isa = PBXGroup;
552 565 children = (
553 566 E933E6761F40513C002926F5 /* GroupDetailViewController.h */,
554 567 E933E6771F40513C002926F5 /* GroupDetailViewController.m */,
555 568 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */,
556 569 );
557   - name = GrouDetail;
  570 + name = GroupDetail;
558 571 sourceTree = "<group>";
559 572 };
560 573 E9373E441F35966D0059355A /* AutoTranslateView */ = {
... ... @@ -684,7 +697,7 @@
684 697 Base,
685 698 );
686 699 mainGroup = 6E84E3681F27A700001EB88E;
687   - productRefGroup = 6E84E3721F27A700001EB88E /* Products */;
  700 + productRefGroup = 783929CF869F5081762B3DCA /* Products */;
688 701 projectDirPath = "";
689 702 projectRoot = "";
690 703 targets = (
... ... @@ -823,6 +836,7 @@
823 836 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
824 837 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
825 838 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
  839 + E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */,
826 840 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
827 841 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */,
828 842 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */,
LifeLog/LifeLog/Entities.h
... ... @@ -11,6 +11,7 @@
11 11  
12 12 #import <MBProgressHUD/MBProgressHUD.h>
13 13  
  14 +#import "MemberObject.h"
14 15 #import "GroupObject.h"
15 16 #import "TweetObject.h"
16 17 #import "HistoryGraphObject.h"
LifeLog/LifeLog/GroupDetailViewController.h
... ... @@ -13,6 +13,7 @@
13 13  
14 14 @interface GroupDetailViewController : BaseTableViewController {
15 15 GroupObject * _curGroup;
  16 + BOOL isMemberList;
16 17 }
17 18 @property (weak, nonatomic) IBOutlet UIImageView *imgAva;
18 19  
... ... @@ -25,6 +26,7 @@
25 26 - (IBAction)clickBack:(id)sender;
26 27  
27 28 - (void) setGroup : (GroupObject *) object;
28   -- (IBAction)clickSwitch:(AutoTransButton*)sender;
  29 +- (IBAction)clickSwitch:(AutoTransButton *)sender;
  30 +- (IBAction)clickJoin:(AutoTransButton *)sender;
29 31 @end
LifeLog/LifeLog/GroupDetailViewController.m
... ... @@ -21,8 +21,7 @@
21 21  
22 22 - (void)viewDidLoad {
23 23 [super viewDidLoad];
24   - [self setupView];
25   -
  24 + isMemberList = false;
26 25 //register nib for table view
27 26 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
28 27 if(_curGroup != nil) {
29 28  
... ... @@ -40,16 +39,14 @@
40 39 _curGroup = object;
41 40 }
42 41  
43   -- (IBAction)clickSwitch:(id)sender {
44   -}
45   -
46 42 - (void)setupView {
47 43 if(_curGroup != nil) {
48 44 if(_curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) {
49 45 [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]];
50 46 }
51   - self.lblGrpName.text = _curGroup.name;
52   - self.lblGrpGoal.text = _curGroup.goal;
  47 + [self.lblGrpName setText:_curGroup.name];
  48 + [self.lblGrpGoal setText:_curGroup.goal];
  49 + [self.btJoinGrp setHidden:_curGroup.isJoin];
53 50 NSString *mode = @"";
54 51 if(_curGroup.runMode) {
55 52 mode = [mode stringByAppendingString:@"ランニング\n"];
56 53  
57 54  
... ... @@ -69,19 +66,53 @@
69 66 [self.navigationController popViewControllerAnimated:true];
70 67 }
71 68  
  69 +- (IBAction)clickSwitch:(AutoTransButton *)sender {
  70 + isMemberList = !isMemberList;
  71 + [self resetData];
  72 +}
  73 +
  74 +- (IBAction)clickJoin:(AutoTransButton *)sender {
  75 + NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
  76 + MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
  77 + [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
  78 + dispatch_async(dispatch_get_main_queue(), ^{
  79 + if(hudView != nil) {
  80 + [hudView hideAnimated:true];
  81 + }
  82 + });
  83 + }];
  84 +}
  85 +
  86 +
  87 +
72 88 #pragma mark UITableView Delegate
73 89 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
74 90 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
75   - TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
76   - if(object.avatarLink && ![object.avatarLink isKindOfClass:[NSNull class]]) {
77   - [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatarLink]]];
  91 + if(isMemberList) {
  92 + MemberObject *object = [_curDataList objectAtIndex:indexPath.row];
  93 + if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
  94 + [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
  95 + }
  96 + cell.lblUsername.text = @"";
  97 + cell.lblDateTime.text = @"";
  98 + cell.lblDes.text = object.userName;
  99 + cell.lblMode.text = @"";
  100 + cell.lblDistance.text = @"";
  101 + cell.lblDuration.text = @"";
78 102 }
79   - cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
80   - cell.lblUsername.text = object.userName;
81   - cell.lblDes.text = object.content;
82   - cell.lblMode.text = object.mode;
83   - cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
84   - cell.lblDuration.text = object.time;
  103 + else {
  104 + TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
  105 + if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
  106 + [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
  107 + }
  108 + cell.lblDateTime.text = [Utilities stringFromDate:object.createDate withFormat:@"YYYY/MM/dd hh:mm"];
  109 + cell.lblUsername.text = object.userName;
  110 + cell.lblDes.text = object.content;
  111 + cell.lblMode.text = object.mode;
  112 + cell.lblDistance.text = [NSString stringWithFormat:@"%.0f m", object.distance];
  113 + cell.lblDuration.text = object.time;
  114 + }
  115 +
85 116 return cell;
86 117 }
87 118  
88 119  
89 120  
... ... @@ -89,12 +120,12 @@
89 120  
90 121 - (void) requestGroupDetail {
91 122 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
92   -// MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
  123 + MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
93 124 [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) {
94   -// [hudView hideAnimated:true];
95 125 GroupDetailViewController __weak *weakSelf = self;
96 126 _curGroup = object;
97 127 dispatch_async(dispatch_get_main_queue(), ^{
  128 + [hudView hideAnimated:true];
98 129 [weakSelf setupView];
99 130 [weakSelf callRequestToUpdateData];
100 131 });
... ... @@ -109,15 +140,28 @@
109 140 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
110 141 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
111 142 }
112   - [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
113   - dispatch_async(dispatch_get_main_queue(), ^{
114   - if(hudView != nil) {
115   - [hudView hideAnimated:true];
116   - }
117   - });
118   - GroupDetailViewController __weak *weakSelf = self;
119   - [weakSelf updateTableData:array error:error];
120   - }];
  143 + if(isMemberList) {
  144 + [[ServerAPI server] requestMemberList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
  145 + dispatch_async(dispatch_get_main_queue(), ^{
  146 + if(hudView != nil) {
  147 + [hudView hideAnimated:true];
  148 + }
  149 + });
  150 + GroupDetailViewController __weak *weakSelf = self;
  151 + [weakSelf updateTableData:array error:error];
  152 + }];
  153 + }
  154 + else {
  155 + [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
  156 + dispatch_async(dispatch_get_main_queue(), ^{
  157 + if(hudView != nil) {
  158 + [hudView hideAnimated:true];
  159 + }
  160 + });
  161 + GroupDetailViewController __weak *weakSelf = self;
  162 + [weakSelf updateTableData:array error:error];
  163 + }];
  164 + }
121 165 }
122 166  
123 167 @end
LifeLog/LifeLog/GroupDetailViewController.xib
1 1 <?xml version="1.0" encoding="UTF-8"?>
2   -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
6 6 <dependencies>
7   - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 9 </dependencies>
10 10 <objects>
... ... @@ -70,7 +70,7 @@
70 70 <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/>
71 71 </constraints>
72 72 </view>
73   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWV-pS-TCo">
  73 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWV-pS-TCo">
74 74 <rect key="frame" x="15" y="54" width="345" height="21"/>
75 75 <constraints>
76 76 <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/>
... ... @@ -89,7 +89,7 @@
89 89 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
90 90 <nil key="highlightedColor"/>
91 91 </label>
92   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bdy-dI-j47">
  92 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bdy-dI-j47">
93 93 <rect key="frame" x="15" y="160" width="345" height="80"/>
94 94 <constraints>
95 95 <constraint firstAttribute="height" constant="80" id="jgH-57-Bae"/>
96 96  
... ... @@ -121,10 +121,10 @@
121 121 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/>
122 122 </userDefinedRuntimeAttributes>
123 123 <connections>
124   - <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="3wX-Tc-XA3"/>
  124 + <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="z4V-ym-fqS"/>
125 125 </connections>
126 126 </button>
127   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton">
  127 + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton">
128 128 <rect key="frame" x="197" y="270" width="162" height="30"/>
129 129 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
130 130 <constraints>
... ... @@ -139,6 +139,9 @@
139 139 </userDefinedRuntimeAttribute>
140 140 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/>
141 141 </userDefinedRuntimeAttributes>
  142 + <connections>
  143 + <action selector="clickJoin:" destination="-1" eventType="touchUpInside" id="Ukt-bi-Sw2"/>
  144 + </connections>
142 145 </button>
143 146 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4VU-Ye-7Au">
144 147 <rect key="frame" x="0.0" y="310" width="375" height="307"/>
LifeLog/LifeLog/HistoryViewController.xib
... ... @@ -45,7 +45,7 @@
45 45 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/>
46 46 </userDefinedRuntimeAttributes>
47 47 </label>
48   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC">
  48 + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC">
49 49 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
50 50 <constraints>
51 51 <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/>
LifeLog/LifeLog/MemberObject.h
  1 +//
  2 +// MemberObject.h
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/18/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface MemberObject : NSObject
  12 +
  13 +@property (nonatomic) int userID;
  14 +@property (nonatomic) int gender;
  15 +
  16 +@property (nonatomic, strong) NSString * userName;
  17 +@property (nonatomic, strong) NSString * nickName;
  18 +@property (nonatomic, strong) NSString * avatar;
  19 +
  20 +@property (nonatomic, strong) NSDate * joinDate;
  21 +@property (nonatomic, strong) NSDate * birthDay;
  22 +
  23 +-(id) initWithData : (NSDictionary *) dict;
  24 +
  25 +@end
LifeLog/LifeLog/MemberObject.m
  1 +//
  2 +// MemberObject.m
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/18/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import "MemberObject.h"
  10 +#import "Utilities.h"
  11 +
  12 +@implementation MemberObject
  13 +
  14 +-(id) initWithData : (NSDictionary *) dict {
  15 + if([dict objectForKey:@"user_id"] != nil) {
  16 + self.userID = [dict[@"user_id"] intValue];
  17 + }
  18 + if([dict objectForKey:@"gender"] != nil) {
  19 + self.gender = [dict[@"gender"] intValue];
  20 + }
  21 + if([dict objectForKey:@"username"] != nil) {
  22 + self.userName = dict[@"username"];
  23 + }
  24 + if([dict objectForKey:@"nickname"] != nil) {
  25 + self.nickName = dict[@"nickname"];
  26 + }
  27 + if([dict objectForKey:@"profile_image"] != nil) {
  28 + self.avatar = dict[@"profile_image"];
  29 + }
  30 + if([dict objectForKey:@"birthday"] != nil) {
  31 + NSString *dateString = dict[@"birthday"];
  32 + self.birthDay = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd"];
  33 + }
  34 + else {
  35 + self.birthDay = [NSDate date];
  36 + }
  37 + if([dict objectForKey:@"join_date"] != nil) {
  38 + NSString *dateString = dict[@"join_date"];
  39 + self.joinDate = [Utilities dateFromString:dateString withFormat:@"yyyy-MM-dd HH:mm:ss"];
  40 + }
  41 + else {
  42 + self.joinDate = [NSDate date];
  43 + }
  44 + return self;
  45 +}
  46 +
  47 +@end
LifeLog/LifeLog/RankingViewController.xib
... ... @@ -34,7 +34,7 @@
34 34 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/>
35 35 </userDefinedRuntimeAttributes>
36 36 </label>
37   - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp">
  37 + <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp">
38 38