1. 이전 포스팅 확인하기
https://growingsaja.tistory.com/913
2. CRTunixToString 파일 작성
// vim CRTunixToString.h
@interface CRTunixToString : NSObject
@property (readwrite, strong, nonatomic) NSString *stringDateTime;
+(instancetype) sharedInstance;
-(void)stringFromUnix:(NSNumber *)unixTimestamp andFormat:(NSString *)dateTimeFormat;
@end
// vim CRTunixToString.m
#import <Foundation/Foundation.h>
#import "CRTunixToString.h"
@implementation CRTunixToString
+(instancetype) sharedInstance {
static CRTunixToString *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
-(void) stringFromUnix: (NSNumber *)unixTimestamp andFormat: (NSString *)dateTimeFormat {
// Unix Timestamp를 NSTimeInterval 형식으로 변환합니다. 이 형식은 초를 나타내는 부동 소수점 숫자입니다.
NSTimeInterval timeInterval = [unixTimestamp intValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:dateTimeFormat];
_stringDateTime = [dateFormatter stringFromDate:date];;
}
@end
3. 해당 기능 활용 예제
// ****** 현재 timestamp 가져오기 ****** //
NSNumber *unixTimestampNow = jsonResponse[@"timestamp"];
// unix를 string으로 바꾸기
CRTunixToString *nowTime = [CRTunixToString sharedInstance];
[nowTime stringFromUnix:unixTimestampNow andFormat:@"yyyy-MM-dd HH:mm:ss"];
if ([self.dateTime isEqual:nowTime.stringDateTime]) {
// 내 최근 update 시간 == api 최신 update 시간 -> 인 경우
// 최근 업데이트 시간과 같으면 어차피 같은 데이터이므로 업데이트 미진행
// 업데이트할게 없음. api call을 stop해야해! 1달에 1,000건만 가능하니까 어차피 업데이트할 게 없는 상황이면 그냥 미진행
NSLog(@"[WARN] OpenExchangeRates API Call Is Wasted!");
}