본문 바로가기

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 사용 후 해당 오류코드가 추가된것을 볼 수 있다. 더보기