본문 바로가기

ios

custom TableView Cell Button selector 커스텀으로 셀을 구성후 각각 셀마다 버튼을 눌러 그셀의 IndexPath를 전달&출력하는 방법 먼저 cell에 버튼셀렉터를 구현한다. [cell.selectButton addTarget:self action:@selector(selectButtonPush:) forControlEvents:UIControlEventTouchUpInside]; 그후 selectButtonPush메서드로 가서 다음의 코드를 입력한다. customCell * cell = (customCell *)[[sender superview] superview]; NSIndexPath *indexPath = [_tableView indexPathForCell:cell]; 그리고 로그를 출력 하면 내가 누른 셀의 로우값을 알아낼수 있고 그해.. 더보기
Core Data Attributes수정 및 추가 할때 순서 자꾸 햇갈려서 그리고 신중히 해야 하기때문에 여기다 적어놓겠다.먼저 현재사용하고 있는 data model을 버전을 업데이트햐야한다. 이렇게 현재사용하고 있는 data Model을 선택후 엑스코드 메뉴 Editor 에서 Add model Version 을 클릭한다 그러면 다음과 같은 화면이 뜨게 된다 Finish를 누르자 이름은 자신이 원하는 이름으로 해도 좋지만 나중을 알아보기 쉽게 설정한다 (본인은 기본숫자) 모든과정을 마치면 이렇게 아름다운 새로운 버전의 data model이 생겼다. 끝이 아니다 만들었으니 수정을 해야지.저 아름다운 데이터모델들을 감싸고있는 상위 data model을 클릭하면Xcode 오른쪽 Utilities창에 이런 섹션이 있을것이다 여기서 Current를 클릭하여 방금 만든 da.. 더보기
Xcode - Profile의 leaks을 파헤쳐보자 어떤 프로젝트를 만들고나서 또는 만드는 중에 메모리 릭이나 현재 이앱의 무게? 를 측정하기 위해 사용하는 툴이 있다. 바로 요녀석 아이콘 모양도 엑스레이 촬영하는것처럼 생긴 녀석이다바로 내가 만든 프로잭트를 종합검진하는 녀석이라고 생각 하면되겠다. 안에 들어가보면 여러가지 항목이 있는데 메모리나 CPU File System등의 항목을 검사할 수 있지만 이번 포스팅은 가장 자주 사용하는 Leaks에 대해서 이야기 하겠다.Leaks는 메모리검사라고 생각 하면되는데 내가 만든 앱을 실행했을때 사용되는 메모리 새는 메모리 총사용메모리등 메모리전반적인 자세한 내용을 보여준다. 사용방법은 다음과 같다.시뮬레이터기준으로 진행하였다. 먼저 엑스코드에에서 Run버튼이 있는 위치를 오래 클릭하면 다음과 같은 메뉴가 나온다.. 더보기
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이렇게 나온다 방금 의 코드는 년:월:일 만 나오게 만든것이다. 이처럼 원하는 방법으로 사용이 가.. 더보기