UCC 다바다를 찾아오신 분은 '여기'로 가주세요..

프로그램을 만들다 보면 함수를 일정 시간 이후에 호출해줘야 할 때가 있습니다.

보통 1회성 타이머를 이용해서 구현하는데 Objective-C에서는 기본적으로 제공하는 기능이 있습니다.


performSelector:withObject:afterDelay:  

이 메소드는는 Selector에 해당하는 메소드를 일정시간 이후에 호출해줍니다. (Objective-C에서는 '함수 호출'을 '메시지를 보낸다'고 표현하더군요)

SEL sMethod = @selector(TestMethod);

if
([self respondsToSelector:sMethod] == YES) 

[self performSelector:sMethod withObject:nil afterDelay:0.1];


respondsToSelector는 Selector가 구현되어 있는 녀셕인가를 체크해서 YES, NO로 리턴해주는 메소드입니다.

performSelector의 1번째 인자는 selector를 넘겨주고, 2번째 인자는 selector의 1번째 인자를 넘겨줍니다. (없는 경우 nil)
그 다음 afterDelay에 실수형으로 초 단위 값을 넘겨줍니다.  

이런식으로 메소드를 호출하는 경우 현재 스레드와 동일한 스레드 내에서 실행이 됩니다.

이렇게 일정시간 이후 실행되는 메소드의 호출을 취소하고 싶은 경우엔 cancelPreviousPerformRequestsWithTarget 메소드를 호출해줍니다.
[NSRunLoop cancelPreviousPerformRequestsWithTarget:self]; 

이렇게 하면 가장 마지막에 던진 메소드가 취소됩니다.
이렇게 하지 않고 특정 메소드를 취소시키려면 Selector를 지정해주면 됩니다. 

[NSRunLoop cancelPreviousPerformRequestsWithTarget:self selector:sMethod object:nil]; 


※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)

 


저작자 표시 비영리 변경 금지
신고
Posted by 고독한 프로그래머

댓글을 달아 주세요

프로그래밍/Utility2011.07.25 21:32

텍스트 편집 및 파일 비교 툴인 TextWrangler를 연결하는 방법을 소개해드리겠습니다.

일단 svnX와 TextWrangler를 설치합니다.

svnX : http://code.google.com/p/svnx/downloads/list (현재 버전 1.3, 프리웨어)
TextWrangler : http://www.barebones.com/products/textwrangler/ (현재 버전 3.5.3, 프리웨어)



- svnX의 Preferences 창을 띄운 후 Diff application을 TextWrangler로 설정해줍니다.



- TextWrangler를 실행한 후 메뉴에서 Install Command Line Tools...를 선택해줍니다.



Install Command Line Tools...를 하고 나면 /usr/local/bin/ 에 twdiff, twfind 파일이 생깁니다.
그런데 현재 버전의 svnX의 binaries folder가 /usr/bin 으로 돼있기 때문에 제대로 동작하지 않게 됩니다..

Finder를 열어서 Command+Shift+G를 눌러서 폴더 이동 화면을 띄운 후, /usr/local/bin을 입력합니다.


twdiff, twfind 파일을 복사해둔 후.. 



다시 finder에서 /usr/bin 폴더로 이동합니다.



복사해둔 2개 파일을 붙여넣습니다.



자.. 이제 svnX에 TextWrangler를 Diff application으로의 설정이 완료되었습니다.


테스트를 위해 svnX에 test.m 파일을 추가한 후 수정해 보았습니다. 수정된 파일을 선택한 후, Diff 버튼을 누르면..


TextWrangler가 서버의 파일과 수정한 파일을 비교해줍니다.




※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)


저작자 표시 비영리 변경 금지
신고

'프로그래밍 > Utility' 카테고리의 다른 글

svnX에 TextWrangler 연결하기  (0) 2011.07.25
[MacOS] SVN 관리 툴 svnX  (1) 2011.07.22
Posted by 고독한 프로그래머

댓글을 달아 주세요

프로그래밍/Utility2011.07.22 22:43


얼마전부터 맥에서 아이폰앱 개발 공부를 시작했습니다..

프로젝트 진행을 해보신 분이라면 SVN이라는 놈을 아실겁니다. 
소스코드 버전 관리를 해주는 프로그램이죠.

Xcode에서는 Organizer에 기본으로 svn 관리 툴이 붙어있더군요. 
그래서 좀 써봤는데 버그가 좀 많고 왠지 허접한(!) 느낌이 들었습니다..

그래서 svn 클라이언트 프로그램 찾아보다가.. svnX라는 놈을 찾았습니다..

svnX는 아래 링크에서 받아보실 수 있습니다. (프리웨어)
http://code.google.com/p/svnx/downloads/list (현재 버전 1.3)

svnX를 설치하신 후.. 실행을 하면 저장소 창이 뜹니다.

Repositories는 실제 소스가 저장될 곳입니다. 서버가 될수도 있고 내 컴퓨터에 저장되는 경로일 수도 있습니다.

일단 서버쪽에 SVN Server 프로그램이 깔려있고, 사용자 계정이 등록돼있다는 가정 하에
서버 저장소와 연결하는 방법을 소개해보겠습니다.

일단 저장소 창을 띄웁니다.
만약 창이 안떠있다면 "메뉴 -> Window -> Repositories"로 창을 띄웁니다.


오른쪽 중간 쯤에 있는 + 버튼을 누릅니다.



Name에 프로젝트 이름을 설정하고, 
Path에 서버 저장소 경로를 입력합니다.
User/Password 에는 SVN 계정의 사용자 이름과 비밀번호를 입력해 넣습니다.


입력을 마친 후 리스트에 해당 항목을 더블클릭하면 아래와 같이 저장소 창이 뜹니다.
이 리스트에 보이는 것은 서버에 있는 목록을 보여주는 것이므로.. 로컬에 저장하기 위해 Checkout을 눌러줍니다. 


서버의 소스를 저장할 로컬 경로를 설정한 후 Checkout을 눌러주면..



Working Copies 폴더에 test 프로젝트가 추가가 됐습니다.. 이렇게 되면 이제 준비는 끝난것입니다.


Working Copies에서 해당 항목을 더블클릭하면 Update, Commit 등을 할 수 있는 창이 뜹니다.

[##_http://shkam.tistory.com/script/powerEditor/pages/1C%7Ccfile6.uf@192B1B3D4E290E7E2178D4.jpg%7Cwidth=%22640%22%20height=%22522%22%20alt=%22%22%20filename=%22test-3.jpg%22%20filemime=%22%22%7C_##]Finder에서 저장소 폴더에 임의의 소스 파일 2개를 추가했습니다.
위에 두 항목이 ? 로 뜨는 것은 SVN 관리 파일이 아니라는 것입니다.
파일을 선택한 후 Add를 눌러주고 Commit 을 하면 서버로 해당 파일들이 올라갑니다.


[##_http://shkam.tistory.com/script/powerEditor/pages/1C%7Ccfile10.uf@202E36404E290DF70D52FE.jpg%7Cwidth=%22640%22%20height=%22522%22%20alt=%22%22%20filename=%22test-2.jpg%22%20filemime=%22%22%7C_##]
Update 메뉴는 다른 사람이 소스를 수정해서 Commit 한 경우 내 컴퓨터에 있는 소스와 동기화를 시켜주는 작업을 합니다.
만약 내가 수정한 부분과 충돌이 일어나면 충돌 표시도 해주며,
같은 파일을 수정했더라도 충돌부분이 없으면 자동으로 병합해주는 아주 똑똑한 놈이지요..

커밋을 한 후 한번 Refresh해준 다음, Repository를 눌러보시면 아래와 같이 버전이 생성됩니다.




버전 관리에 꼭 텍스트 파일 형식일 필요는 없습니다. 바이너리 파일도 버전 관리가 됩니다 (물론 비교는 힘들겠지만요..)

이런식으로 프로젝트 폴더 전체를 공유해서 여러명이서 개발을 하면 좋습니다..
옛날에 이런 버전 관리 툴이 없을때는 각자 개발하고 날잡하서 병합하고 그랬더랬지요.. 


 ※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)






저작자 표시 비영리 변경 금지
신고

'프로그래밍 > Utility' 카테고리의 다른 글

svnX에 TextWrangler 연결하기  (0) 2011.07.25
[MacOS] SVN 관리 툴 svnX  (1) 2011.07.22
Posted by 고독한 프로그래머
TAG MAC OS, svn, svnX, Xcode

댓글을 달아 주세요

  1. 벶댜어 교숀로던셔도넝셩소어다.

    2011.08.27 17:10 신고 [ ADDR : EDIT/ DEL : REPLY ]