본문 바로가기

iOS 개발 이야기

앱이 죽을때 디버깅 팁 일전에 읽은 글인데 다시 보니 또 새롭다. 어쩜좋아.. http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1http://www.raywenderlich.com/10505/my-app-crashed-now-what-part-2 그래서 다시 한번 읽고 실습하고 정리. 우선 먼저 당황하지 말고 침착하기. (이거 참 어렵다)어느 파일의 어느 라인에서 죽었는지 찾아야한다. 앱이 죽는 원인은 보통 두가지인데 하나는 SIGABRT(EXE_CRASH)이다. 이것은 앱이 의도하지 않은 일을 했기 때문에 시스템이 앱을 죽인 것.디버깅 영역에 에러 메시지가 뜬다.앱이 죽은 것은 exception을 처리한 후이므로 exception breakpoint를 걸어서 .. 더보기
아래에서 반만 올라오는 창. 카톡 친구리스트에서 한명 선택하면 아래에서 슝 하고 올라오는 창.윗부분은 반투명이고 아래에만 내용이 있다. (사진이 위에도 뜨는 경우도 있지만)요런거 만드느라 삽질한 것 기록.(나중에 또 비슷한 삽질 할 때 참고해야 하니까..) 화면 전체를 차지하지 않는 건 action sheet인데 여기에 다른 컨트롤을 넣을까 하다가 이건 아닌것 같고.그냥 view controller 만들어서 presentViewController 사용해서 보여주는데 배경을 투명으로 했다.그런데 투명으로 잘 떠놓고 뜨고나면 뒤가 까매짐.알아보니 modal로 띄우면 원래 뒤의 view가 hidden이 되어서 그렇단다.modal presentation style을 UIModalPresentationCurrentContext로 하면 hid.. 더보기
애플개발자등록 사업자등록에 이어 애플개발자 등록을 했다. 우선 gmail에서 새 메일 주소를 만들고 그것을 이용해 개발자등록을 했다. 회사로 등록하면 영문사업자등록증명서를 팩스로 보내라고 메일이 온다.스캐너도 팩스도 없어서 어떻게 할까 고민하다가 사진을 찍어서 인터넷 팩스로 보내기로 했다.인터넷 팩스를 알아보던중 아이폰 앱이 있어서 그걸로 했다. 가입없이 사용할 수 있어서 좋다.'바로팩스'라는 앱으로 0.99불이며 처음에 20포인트를 준다. 국내 팩스는 1포인트, 미국은 3포인트가 사용되고 앱내 구매로 포인트 충전이 가능하다. 출력해놓은 영문사업자등록 증명서 상단에 Enrollment ID랑 전화번호를 써서 사진을 찍었다.앱으로 팩스를 보냈는데 앞에 1을 붙였더니 전송 실패. 국가번호 1을 빼고 보내니 몇분뒤 완료되었.. 더보기
사업자등록 사업자 등록을 했다. 애플 개발자 등록을 하려는데 개인과 회사중 회사로 등록하려면 사업자등록번호가 필요하기 때문이다.개인으로 하지 않고 회사로 하면 공급자에 개인 이름이 아닌 회사 이름이 나오고, 다른 개발자를 추가할 수 있다.또한 수익이 발생하면 세금도 내야하니까 사업자등록을 하는게 이래저래 좋을듯 싶다. 사업자 등록은 인터넷으로 간단하게 완료. 홈텍스(hometax.go.kr)에 가서 개인사업자 -> 세무서류신고신청 -> 사업자등록신청(개인)을 선택한다.공인인증서로 로그인. 주소는 집주소로 하고 업종은 소프트웨어로 검색해서 722000 출판, 영상, 방송 통신 (시스템 소프트웨어 개발 및 공급업)으로 선택했다. (사실 시스템 소프트웨어는 아니고 응용 소프트웨어 개발이지만 설명에 응용 소프트웨어 제작이.. 더보기
UIView에서 모든 sub view 삭제하기. UIView의 subview 관련 함수 중에 addSubview, removeFromSuperview는 있는데, removeAllSubviews는 없다. 하지만 아래와 같이 한줄로 해결 가능. [view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 해석하면, 나의 모든 자식 뷰들아, 다음을 실행하거라 - 엄마한테서 떨어지렴. :) 더보기
테이블뷰에 디자인 적용하기 테이블뷰에 디자인을 적용할 때 팁 몇가지. 1. 테이블뷰 셀 배경색 설정 셀의 배경색 설정은 UITableViewDelegate의 tableView:willDisplayCell:forRowAtIndexPath에서 해야한다. 홀/짝수에 다른 색을 적용하려면 다음과 같이 하면 된다. - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row % 2 == 0) { cell.backgroundColor = [UIColor redColor]; } else { cell.backgroundColor = [UIColo.. 더보기
Navigation bar의 back button title 지정하기. 네비게이션 스택에 뷰가 쌓이면 네비게이션 바의 좌측에 뒤로가기 버튼이 생긴다. 여기에 타이틀은 따로 지정하지 않으면 이전 뷰의 타이틀이 된다. 이 타이틀을 수정하고 싶을 때는 해당 버튼이 나타나는 뷰에서 자신의 네비게이션 바에 무언가를 설정하는 것이 아니고 이전 뷰에서 설정을 해야한다. 이걸 몰라서 삽질 좀 했는데 알고나니 허무하기도 하고 당연해보이기도 하다. 현재 화면은 지금 활성화된 view controller랑 연결될 것이라고만 생각했는데 그게 너무 단순한 시각이었던 것이다. 다시말하면, navigation bar의 back button은 어떤 view controller가 자신이 back button에 연결되는 상황일때 (최상위 뷰 아래에 깔렸을 때) back button을 이렇게 표시해달라는 속.. 더보기
storyboard가 사라지다. 어제 퇴근 시간이 다되어갈 무렵, 개발중인 앱의 새 버전을 마무리하고 앱스토어에 submit하고. 가벼운 마음으로 디렉토리 정리를 했다. 필요없는 폴더들을 마구마구 삭제~ 하드 용량도 부족하고 필요없는 파일들이 있으면 헷갈리고 하니 가능한 많이 삭제하자는 주의다. 그러고나서 xcode로 프로젝트를 열었는데.. (왜 열었는지는 생각이 안난다) storyboard 파일이 없는게 아닌가. 헉. 좌측 네비게이터에 MainStoryboard.storyboard가 빨간색 글씨로 파일이 없음을 표시하고 있었다. 소스를 svn으로 관리하는데 최근에 리팩토링을 하느라 새 브랜치에서 작업하고 있었다. trunk의 프로젝트를 열어봐도 역시 스토리보드 파일이 없음.. 헉. xcode랑 svn이랑 뭔가 안맞는 것 같았는데.. .. 더보기