본문 바로가기

NSDate 특정날짜와 현재날짜 비교 특정날짜를 오늘과 비교해서 차이를 구하는 함수이다. 한마디로 디데이같은 개념이라 생각 하면 된다. - (NSInteger)formattedDateCompareToNow:(NSDate *)date { NSDateFormatter *mdf = [[NSDateFormatter alloc] init]; [mdf setDateFormat:@"yyyy-MM-dd"]; NSDate *midnight = [mdf dateFromString:[mdf stringFromDate:date]]; NSInteger dayDiff = (int)[midnight timeIntervalSinceNow] / (60*60*24); return dayDiff; } 사용법은 다음과 같다 NSDateFormatter *dateFormatte.. 더보기
tip UITextField 언어별 길이 알아내기 UITextField로 text를 입력 받고 나서 언어별 (한글, 영어)로 처리를 다르게 하고 싶을때 입력 받은 text값에대한 언어가 무엇인지 판을해야 한다 공식적으로? 는 지원 하지 않지만 약간의 꼼수로 확인할 수 있는 방법이 있다 cStringUsingEncoding을 이용하는방법이다 이방법은 원래 server와 통신할시 한글이 포함된 string값을 받거나 줄때 한글 그대로 주게 되면 깨지는 현상을 방지하기 위해 인코딩을 하는 방법이다. UTF8StringEndoding을 이용하여 UTF-8로 인코딩 하면 한글이 포함된 문자는 특정한 길이가 생기는데 그걸 비교하면 된다. 사용법은 다음과 같다 NSString * text = @"abcd1234한글"; constchar* tmp = [text cSt.. 더보기
UILabel사이즈가 고정일때 UILabel.text font사이즈 동적으로 변경하기 라벨 사이즈보다 라벨에 들어가는 사이즈가 더 길때 ios는 기본적으로 뒷부분에 ... 으로 표시한다. 그럴때 [label setFontSize:20]; [label setMinimumFontSize:10]; [label setAdjustsFontSizeToFitWidth:YES]; 이렇게 라벨속성을 변경 하면 알아서 텍스트길이가 라벨보다 짧을때는 기존처럼 반대로 텍스트길이라 라벨사이즈보다 길면 최소폰트로 표시 할수 있을때까지 폰트사이즈를 줄여서 표시한다. 참고로 여기서 라벨사이즈보다 텍스트길이가 길다고 무조건 최소 폰트사이즈로 표시하는게 아니다. 예를 들어 기본 폰트사이즈가 20이고 최소 폰트사이즈가 10이라 가정 하여 20사이즈가 너무 길어 표시를 못하면 무조건 폰트사이즈를 10으로 줄여서 표시 하는게.. 더보기
[xcode] 개발시에 시뮬레이터에선 잘돌아가는게 디바이스에선 안돌아간다? 디아비스에서 개발을하다가 디버그모드에서 Break 시킨상태에 Stop을 누르게 되면 낮은? 높은 확률로 Xcode가 꼬여서 이상해질때가 있다.이때 다시 디바이스 Run을 돌리면 알수 없는 오류를 뱉어 내며 초기화면에서 팅기게된다.하지만 시뮬레이터에서 run을 하면잘~~ 돌아가고.. 클린 , Xcode재실행, 맥 재부팅, 아이폰연결해제 해도 잘 고쳐지지않는 이 버그는 ..... 아이폰을 재부팅 하면 정상적으로 돌아간다. 이런.. 더보기
NSDateFormatter 사용하기 [NSDate date]; 위의 코드는 현제 시간을 표시 한다 로그값을 찍어 보면 2013-06-13 04:19:04 +0000 이렇게 나온다. 년도-월-일 시-분-초:소수점 +글로벌시간오차? 이렇게 나온 시간을 원하는 정보만 쏙 빼가서 출력을 하거나 따로 저장을 하고 싶을뗀 NSDateFormatter를 이용하면 된다. NSDateFormatter *변수1 = [[NSDateFormatter alloc]init]; [변수1 setDateFormat:@"yy:MM:dd"]; NSString *변수2 = [변수 stringFromDate : [NSDate date]]; 이렇게 적으면 위의 내용이 11:12:06이렇게 나온다 방금 의 코드는 년:월:일 만 나오게 만든것이다. 이처럼 원하는 방법으로 사용이 가.. 더보기
NSLog();유용팁 #ifdef DEBUG #define NSLog(fmt, ...) NSLog((@"%s[Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define NSLog(...) #endif 위에 코드를 적어 놓고 평소 처럼 NSLog(어쩌구저쩌구); 라고 적으면 2012-01-05 18:34:06.788 Test[9875:707] -[클레스명 함수명][Line 넘버] 어쩌구저쩌구 가 찍히게 된다. ---------------------------------------------------------------------------------------------------- 내용추가 모드가 디버그모드 예를들어 프로잭트를 Run하게 되면.. 더보기