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!");
                }

 

 

 

 

 

+ Recent posts