본문 바로가기

전체 글

Objective C New와 Alloc의 차이 책을 보는데 이전과 다르게 인스턴스 생성시 New를 쓰길래 alloc init 과 뭐가 다른지 궁금해서구글링 해봤다.The NSObject life cycleTo create an NSObject, send its class either an alloc or a new message:id anObject = [NSObject new]; // Creates and returns an initialized object id anotherObj = [NSObject alloc]; // Not yet ready for use...anotherObj = [anotherObj init]; // ...now it is. // good style: combine alloc and init:id oneMoreObj = .. 더보기
iOS와 맥OSX개발을 위한 Objective-C !! 오브젝티브 C 스터디를 위해 회사에 요청한 책이 도착했다iOS와 맥OSX개발을 위한 Objective-C !! 개정판!! 기존에 한빛미디어에서 출판한 OBJECTIVE C (맥과 아이폰 애플리케이션 프로그래밍) 책을 보고있었는데 책이 너무 어렵다 -__- 예제만 연신 따라치다가 이책을 봤는데 굉장히 쉽게 설명되어있네?기존 C 코드와 비교해가면서 설명이 되어있어서 이해가 쉽게 된다 ㅎㅎㅎ빨리 문법 띄고 다음책을 정독해야지 !!!! 더보기
Incompatible pointer types sending warring. 오늘도 열심히 예제코드를 따라하는데 결과값이 책과 달라 찾아보니 다음과 같은 Warring 메시지가 있었다Incompatible pointer types sending 'int(param1,param2,void *)' to parameter of type 'NSInteger (*)(id,id,void *)'리턴받는 타입이 다른다는거 같은데 책을 읽어보니 본문내용에는 함수가 리턴하는 값은 NSComparisonResult라는 열거형 정수라고 써있네?? 뭐지 -___-그래서 문제가 되는 compare함수의 리턴타입을 NSComparisonResult 로 변경해주고 다시 실행해보니예제와 똑같이 나온다 ㅎㅎ 예전에는 걍 int만 해도 됐던건가 -__-)a아 복잡해!!! 더보기
백수 생활 막바지에 나와 함께 한 T61 !! 기존 흰둥이는 이력서쓰기도 빡시고 대전집에 내려가서 이력서 준비하고 면접 보러 올라오고 하기엔 돈이 너무 많이 들어서 이참에 그동안 갖고 싶던 TP를 구입했다 중고딩나라에서 쿨매로 거래 한 T61 14.1 wide 녀석 !!1) CPU : T7500 2) RAM : 4G 3) HDD : 500/7200 4) 그래픽 : NVS 140m 5) 화면 : 14.1인치 1440x900배터리도 9 Cell인데 오래되서 6셀 호환으로 구입!! 나중에 SSD 하나 달아주면 정말 날라다니겠군 쫀득한 키감에 빨콩! 아주 맘에 든다 ㅎㅎㅎ 더보기
automic reference counting mode 에러.. Xcode를 설치하고 objective-c를 공부하던 중 예제 소스를 치다 보니 NSAutoreleasePoll을 사용하니 NSAutorealsePool is unavailable. not available in automatic reference counting mode. 라며 에러가 나서 검색 해봤다.옵젝티브 C는 메모리 관리를 위해 레퍼런스 카운트를 사용하는데 이때 직접 코드로 alloc과 release를 해줘야하기도 하고 자동으로 관리해주는 AutoRelease가 있다고 한다.무튼 프로젝트 셋팅에서 설정해 주면 되는거 였다 아래 그림처럼 Objective-C Automatic Reference Counting 부분을 NO 로 설정해주면 에러 안남 ㅎㅎ 문법이 낯설긴하지만 새로운 언어를 공부하니 재.. 더보기
안드로이드 스크롤뷰 안에 리스트뷰 넣기 전체 화면이 스크롤 되고 그안에 리스트뷰가 있는 경우 이벤트가 중복되어 리스트뷰가 스크롤 되지 않는데구글신을 찾아보니 스크롤 뷰 안에 리스트뷰를 넣고 터치이벤트를 조정하여 리스트뷰 스크롤이 가능한 방법이 있어서 포스팅 한다.우선 아래와 같이 레이아웃을 구성 하고 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 아래와 같이 리스트뷰에 터치리스너를 달아주면 된다.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 private ListView mList_Lv; private ScrollView mScroll_Sv; private void iNit(){ mScroll_Sv = (ScrollView)findViewById(R.id.scroll_view); mList_Lv = (.. 더보기
안드로이드 개발/상용 버전에 따른 코드 분류(android debuggable) 로그인이 필요한 앱을 개발하다보면 앱을 삭제 후 다시 설치할 경우 아이디/비번을 계속 일일이 입력해줘야 하는 불편함이 있었다C의 경우는 define을 통해 개발자모드일때 로그인처리를 해주는 코드를 넣을수 있었는데 안드로이드도 찾아보니 debuggable 이란 속성이 있었다.기본이 true로 되어있는데 릴리즈 버전을 만들땐 반드시 false로 변경 후 배포를 해야한다.위의 속성은 Androidmanifest.xml 파일에서 application 속성에 넣어주면 된다, 1 2 3 4 5 매니페스트에 설정된 debuggable 값이 true 이면 2 를 리턴하고 false 이면 0을 리턴하게 되는데 아래와 같은 함수를 통해 현재 프로젝트 매니페스트 파일의 디버깅 정보를 가져올수 있다.1 2 3 4 5 6 7 .. 더보기
안드로이드 강제 클릭 이벤트 안드로이드에서 사용되는 강제 클릭 이벤트 컴포넌트.performClick(); // 클릭 이벤트컴포넌트.performLongClick(); // 롱 클릭 이벤트 더보기