본문 바로가기

분류 전체보기

ios 화면 회전상태 확인 코드, os 버전 확인 코드 화면 회전 UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; if(!UIDeviceOrientationIsLandscape(orientation)) { //가로 }else{ //세로 } 버전 확인 if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) { } 더보기
ios 배포버전 로그(NSLog) 숨기기 App 배포시 NSLog를 숨기지 않으면 Orgaizer의 Console에서 해당 로그가 찍혀 나오는것을 볼 수 있습니다. 이를 막기 위해서는 .pch파일 (프로젝트명.pch)에 아래의 코드를 추가 한 후 Build Setting에서 Preprocessor Macros의 Debug에 DEBUG=1을 추가해 주시면 됩니다. #ifdef DEBUG #define NSLog( s, ... ) NSLog(@"%s(%d)\n%@", __FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) #else #define NSLog( s, ... ) #endif #define LOG(s, ...) NSLog(@s, ##__VA_ARGS__) 더보기
ios UITableView에서 Cell에 롱터치이벤트(UILongPressGestureRecognizer)를 주었을 때 몇 번째 Cell의 index값을 가져오는 방법 UITableView에 UILongPressGestureRecognizer를 등록 후 해당 제스처의 포지션을 가져와 리스트의 인덱스 포인터를 뽑아오면 됩니다. 테이블 뷰 제스처 등록 //mailList는 UITableView 입니다. UILongPressGestureRecognizer* longClickEvent = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longClickCell:)]; [mailList addGestureRecognizer:longClickEvent]; [longClickEvent release]; 제스쳐 핸들러 부분 - (void)longClickCell:(UILongPressGestureR.. 더보기
ios Exception Type signal ios에서 발생하는 signal은 유닉스 표준 시그널과 비슷하다.signal의 처리가 필요 할 때에는 핸들러를 등록해서 사용하면 된다. signal(SIGPIPE, signal_handler); // 시그널 등록 //핸들러 void signal_handler(int sig_num) { // 처리할 코드 } Exception Type signalSIGSEGV (Segmentation fault signal) - 세그먼테이션 폴트 신호, 유효하지 않은 가상메모리의 주소 또는 사용권한이 없는 메모리에 접근할 때 발생된다. ios에서 보통 릴리즈된 객체 접근에서 EXC_BAD_ACCESS로 주로 내려온다. SIGBUS (Bus error) => EXC_BAD_ACCESS (SIGBUS) - 버스에러 신호, SI.. 더보기
ios 메모리 에러 찾기 NSZombieEnabled 추가 메모리 관련 Bad_Access가 나는 경우(메모리 할당 해제 관련) 어느 에러인지 찾기가 힘든데 NSZombieEnable를 사용하게 되면 release된 메모리를 NSZombieEnable에서 관리하여 추적할 수 있게 만들어준다. 사용법은 다음과 같다. 여기 까지하면 NSZombieEnabled의 등록이 끝이다. 등록후 컴파일을 해주면 된다.테스트를 위하여 다음 코드를 작성하였다.UIButton을 만들고 release를 해준후 title를 추가해주었다. 해당 Button은 이미 release가 되었기 떄문에 메모리 릭이 발생할 것이다. NSZombieEnabled 사용 전 NSZombieEnabled 사용 후 해당 오류코드가 추가된것을 볼 수 있다. 더보기
ios 날짜 비교 NSDate - (NSComparisonResult)compare:(NSDate *)other 메서드로 비교하게 되면return에NSOrderedAscending (date보다)오래된날짜 NSOrderedSame 같은날짜 NSOrderedDescending 이후의날짜로 나오게 된다 NSDate 로 비교하게 될 경우 NSDate가 만들어진 시간에 따라서 같은 날짜여도 NSOrderedAscending 를 호출하는 경우가 있는데 이 때에는 NSDateComponents을 사용하면 시간과 관계없이 단순 날짜만 비교하게 된다. NSDate * startDate = [NSDate date]; NSDate * endDate = [NSDate dateWithTimeIntervalSinceNow:60*60*24]; N.. 더보기
xcode4 svn 연결 xcode 4.x 버전에서 Organizer에서 svn을 추가 할 경우 한번에 데이터를 읽어오지 못하거나 호스트 에러가나는 이상한 문제가 있다. 이를 피하기 위해서는 터미널상에서 svn에 연결 후 svn commit -m"commit after xcode4 upgrade" svn ls https://svn경로 Organizer -> Repositories 에서 좌측 하단의 + -> Add Repository... 를 선택하면 아래 화면이 나온다. next를 누를경우 아래 화면이 나오는데 각 옵션은 설정하지 않으면 기본값이 설정된다. 마지막으로 svn의 계정과 password를 설정해 주면 연결된 것을 확인 할 수 있다. 더보기
UITableView Header와 SectionHeader custom 변경 테이블 뷰를 보면 header을 설정 할 수 있는데 header는 Header와 SectionHeader으로 구분된다.여기서 Header은 TableView의 tableHeaderView를 말하며 최상단에 항상 붙어있고 SectionHeader는 영역을 나누어주는 Section을 말한다. Header을 변경 또는 설정하려면 tableView의 프로퍼티로 선언된 tableHeaderView를 설정해 주면된다. tableHeaderView는 UIView타입 이기 때문에 header을 UIiView로 만들어 넣어주면 해당뷰는 최상단에 붙어 나오게 된다. UITableView *table; UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, .. 더보기
ios sms, mail, 웹페이지 외부연동 그리고 app안에서 sms 메일 보내기 (MFMessageComposeViewController,MFMailComposeViewController 사용) sms, e-mail, 웹페이지 외부 연결시 //사파리로 구글 열기 [[UIApplication sharedApplication] openURL:@"http://www.google.com"];//외부 메일 연동시키기 mailto://abcd@gmail.com[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://"]];//외부 sms 연동시키기 sms://01012340002[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://"]]; app내부 sms, email 연동 * 공통 세팅 : sms와 email을 사용하기 위해 둘다 필요한 세팅MFMailC.. 더보기
상단 status bar 색상, 숨기기 변경 코드로 적용 : 시작과 동시에 변경되지는 않는다. 혹시 방법을 아시는분은 뎃글좀 주세요 ㅠㅠ- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 색상 결정 = UIStatusBarStyleBlackOpaque: 검은색, UIStatusBarStyleBlackTranslucent 검은색 투명, UIStatusBarStyleDefault 회색 [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque; // 히든결정 [UIApplication sharedApplication].s.. 더보기