Tech/PHP 개발2011. 7. 4. 12:25

※ 절대 PHP 설치 경로에 공백이 있으면 안됩니다. 만약 경로에 공백이 있다면 다시 설치해 주세요.

예)

C:\Program Files\PHP

X

C:\PHP

O

   

PHPUnit 설치 및 이클립스에 세팅하기

  1. php.ini 파일에서 일부 기능을 주석 처리(비활성화)합니다. 해당 dll 파일들이 실제로 PHP 설치 경로에 포함되어 있지 않기 때문에 활성화된 경우 PEAR를 설치할 때 오류가 납니다.

     

  2. (PHP를 Windows Installer로 설치하신 경우)

    일부 파일이 installer엔 없고 zip 파일에만 있어서 PEAR 설치 시 문제가 발생합니다. http://windows.php.net/download/ 에서 설치된 PHP와 같은 버전의 zip 파일을 다운받아 열고, zip 파일 안의 extras 폴더를 PHP가 설치된 경로(예: C:\PHP)에 복사해 줍니다.

     

  3. 환경 변수를 설정해 줍니다.

    제어판>시스템 및 보안>시스템 환경 변수 편집 에서 MIBDIRS라는 변수를 만들어 아까 옮긴 extras 폴더 아래 mibs라는 폴더를 가리키도록 설정합니다.

    예) c:\PHP\extras\mibs

     

  4. 윈도우 쉘을 관리자 권한으로 실행시킵니다.

     

    PHP가 설치된 경로에서 go-pear.bat 을 실행시키면 PEAR가 설치됩니다.

     

    설치가 완료되고 아래의 메시지가 나타나면

     

    아래의 파일을 더블클릭하여 레지스트리에 등록합니다.

     

  5. 관리자 권한으로 실행시킨 쉘에서 아래 커맨드를 차례로 입력해 PHPUnit을 설치합니다.

     

    잘 안되면

    하고 다시. 

  6. 설치가 완료되었으면 다음과 같은 내용을 가지는 php 파일을 만들어 테스트를 해 봅시다.

     

    쉘에서 'phpunit PHPUnit코드경로' 를 실행시켜 아래와 같은 화면이 나오면 성공입니다.

     

  7. 이클립스 플러그인으로 사용하기 위해서는

    Help>Install New Software>Add 로

    http://www.phpsrc.org/eclipse/pti 를 추가하고 설치를 진행하시면 됩니다.

     

이클립스에서 PHPUnit으로 테스트하기

  1. 이클립스에서 새 프로젝트를 만들고 SampleClass라는 클래스를 가진 php 파일을 하나 만들어서 다음과 같이 작성해 봤습니다.

     

  2. 해당 php 파일을 오른쪽 클릭하고 New>Other를 선택합니다.

     

  3. PHPUnit Test Case를 선택하고 Next를 누르고

     

  4. 나오는 화면에서 Finish를 누릅니다.

     

  5. 그러면 자동으로 PHPUnit 테스트 스크립트가 생성됩니다.

     

  6. 실제 테스트 코드를 작성하고

     

  7. 오른쪽 클릭>PHP Tools>PHPUnit>Run PHPUnit Test 로 테스트를 실행했을 때

     

  8. 아래와 같이 녹색 등이 켜지면 성공!

     

문제 해결(Troubleshooting) 레퍼런스

'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
Selenium 설치 및 사용법  (0) 2011.07.04
PHPUnit 설치  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 비회원

댓글을 달아 주세요

Tech/PHP 개발2011. 6. 30. 12:45

Firebug + FirePHP 설치

  1. Firefox를 다운받아 설치합니다.

    http://www.mozilla.com/firefox

  2. 도구>부가 기능에 들어가서

    Firebug와 FirePHP를 검색해 설치하고 브라우저를 재시작합니다.

  3. 브라우저 우하단의 벌레를 클릭합니다.

  4. Firebug 메뉴에서 Net 탭을 클릭하고 Enable을 눌러 Net 패널을 활성화시킵니다.

   

Firebug를 이용해 XE 디버그하기

  1. XE 프로젝트에서 /config/config.user.inc.php 를 만들어서 열고 다음과 같이 설정합니다.

    각 설정값에 대해서는 /config/config.user.php 에 자세히 설명되어 있으나, 간략히 설명하면 다음과 같습니다.

    __DEBUG__ == 1: debugPrint() 함수를 통해 메시지 출력

    __DEBUG_OUTPUT__ == 2: Firebug 콘솔에 출력

    __DEBUG_PROTECT__ == 0: 모든 IP에서 디버그 메시지 확인 가능

  2. 디버깅 메시지를 출력하고 싶은 php 파일을 열고 다음과 같이 debugPrint() 함수에 메시지를 설정합니다.

  3. Firefox에서 해당 페이지에 접속하면 설정해 둔 메시지가 Firebug 콘솔에 출력되는 것을 확인할 수 있습니다.

  4. 만약 Firebug가 아니라 파일에 메시지를 출력하고 싶다면 /config/config.user.inc.php 에서 __DEBUG_OUTPUT__을 0으로 설정합니다. 그러면 메시지가 Firebug 콘솔 대신 /files/_debug_message.php 파일에 저장됩니다.

'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
Selenium 설치 및 사용법  (0) 2011.07.04
PHPUnit 설치  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 비회원

댓글을 달아 주세요

Tech/PHP 개발2011. 6. 29. 18:31

Xdebug는 PHP 프로그램을 한 줄씩 실행시키며(line by line) 디버깅할 수 있는 PHP 확장 프로그램입니다.   

Xdebug 설치

  1. phpinfo() 를 실행시킵니다. 아래와 같은 코드를 포함하는 PHP 파일을 작성해서 브라우저에서 접속하면 됩니다.

       

       

  2. 위와 같은 화면을 확인했으면 그 페이지의 소스 코드(HTML)를 복사합니다.

       

  3. Xdebug 홈페이지의 '맞춤 설치' 페이지에 접속합니다.
    http://www.xdebug.org/find-binary.php

       

  4. 흰 텍스트박스에 아까 복사한 코드를 붙여 넣고, 아래의 Analyse my phpinfo() output 버튼을 누릅니다.   

       

  5. 결과 페이지의 아래에 다운받아야 하는 파일과 설치 방법이 설명되어 있으니 따라 하시면 됩니다.   

       

    로컬 머신에서 작업한다고 가정했을 때, php.ini 에 디버깅을 위해 추가로 작성해야 하는 설정은 다음과 같습니다.   

       

  6. (IIS) 서버를 재시작하신 뒤 다시 phpinfo()의 결과를 확인했을 때, 아래와 같이 'with Xdebug…'라는 문구가 있으면 설치 성공입니다.   

   

이클립스에서 디버깅하기

  1. 디버그하려는 프로젝트에서 Run>Debug Configurations 를 엽니다. (이클립스 Helios 버전 기준입니다. 버전에 따라 메뉴가 다른 곳에 위치할 수 있습니다)   

       

  2. PHP Web Page 메뉴에서 New 를 선택합니다.   

       

  3. 새 페이지가 만들어지면
    Server Debugger: XDebug
    File: (처음) 실행할 php 파일
    으로 설정하고 Apply를 누릅니다.   

       

  4. 이제부턴 F11 또는 메뉴의 벌레 버튼를 이용해서 디버그 모드를 실행하실 수 있습니다.
    (처음 실행하시면 'debug perspective를 사용할 거냐'라고 물어보는데, Yes 하시면 됩니다)   

    디버그 모드   


'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
Selenium 설치 및 사용법  (0) 2011.07.04
PHPUnit 설치  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 비회원
TAG php, xdebug

댓글을 달아 주세요

  1. Stas

    Codelobster IDE를 사용하고 싶습니다. - http://www.codelobster.com

    2021.03.30 17:12 [ ADDR : EDIT/ DEL : REPLY ]

Tech/Silverlight2011. 6. 22. 16:52

Silverlight 5에는 3D 그래픽 기능이 추가되었습니다. (기존에는 Silverlight에서 자체적으로 지원하지는 않고 서드파티 라이브러리만 있었습니다Silverlight 5 3D 그래픽은 XNA 그래픽 라이브러리를 사용하며 GPU 가속이 지원됩니다.

XNA는 
내부적으로 DirectX의 일부 기능을 사용하기 때문에 사용 환경에 제약이 있습니다.
 

  • DirectX 9.0 이상
  • Windows XP 이상 (XP, Vista, 7)
     

사용법은 직접 다루지는 않고 링크로 대체하도록 하겠습니다.

3D
튜토리얼

http://silverlight.bayprince.com/tutorials.php

 

3D 데모

http://david.blob.core.windows.net/babylon/Babylon.html

마우스를 이용해 카메라 시점을 변경할 있고 키보드 화살표를 이용해 이동할 있습니다.

 

Silverlight 3D 참고 자료: http://msdn.microsoft.com/en-us/library/gg197424(v=XNAGameStudio.35).aspx

Posted by 비회원

댓글을 달아 주세요

  1. 3D 가속 기능을 사용하려면 사용자가 권한을 승인해줘야 된다는게 좀 깨네요 ;; 그리고 SW 렌더링도 지원하지 않는다고 하니... 말 그대로 윈도우용 App 만드는 데 쓰라는 얘기군요.

    2011.06.22 19:30 신고 [ ADDR : EDIT/ DEL : REPLY ]

Tech/Silverlight2011. 6. 22. 15:58

Silverlight 5에는 동영상을 재생할 하드웨어(GPU; 그래픽카드 ) 이용해 CPU 부하를 줄이는 기술이 추가되었습니다.

 

하드웨어 가속을 사용하는 법은 간단합니다.

실버라이트 파일(.xap) 파일을 명시한 <object> 태그 안에 <param>으로 enableGPUAcceleration 속성을 주면 됩니다.


enableGPUAcceleration 자체는 Silverlight 5 이전에도 원래 있었던 속성이고, 바뀐 점은 속성을 켰을 동영상 재생 GPU 가속을 사용하게 되었다는 점입니다.


Silverlight 5 Beta 이뤄진 간단한 성능 테스트입니다.

번째 사진은 Silverlight 없이 미디어 플레이어로 동영상을 재생했을 ,

번째 사진은 GPU 가속 없이 Silverlight 동영상을 재생했을 ,

번째 사진은 GPU 가속을 켜고 Silverlight 동영상을 재생했을 ,

번째 사진은 GPU 가속과 함께 BitmapCache 사용했을 때의 CPU 사용도입니다.

(높이가 낮을 수록 좋고, 좌우 길이는 성능과 관계 없습니다)


번째 사진과 비교했을 , GPU 가속을 것과 켜지 않은 것의 차이가 생각보다 크지 않은 것을 있습니다. 하지만, BitmapCache 사용했을 때는 CPU 사용도가 크게 낮아진 것을 확인할 있습니다.

BitmapCache 동영상 디코딩 자체에 영향을 주지는 않습니다만 GPU 가속을 사용할 함께 사용하면 이점이 있다고 합니다. (자세한 것은 아래의 원문을 참고하세요)

출처: http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2011/05/03/silverlight-5-beta-rough-notes-hardware-decoded-h-264.aspx

하드웨어 가속 디코딩에 대해서는 정식 릴리즈가 나올 때까지 많은 개선이 이루어질 거라고 생각하기 때문에, 이후 정식 버전을 기대해 봐야겠습니다.


 MediaElement BitmapCache 적용하는 방법은 다음과 같습니다.
 


캐시에 대한 다른 의견도 있습니다. 저사양 컴퓨터에서 MediaElement 캐시를 사용하면 성능이 하락한다는 의견인데 확인해 필요가 있을 같습니다.

출처: http://msdn.microsoft.com/en-us/library/ee309563(v=VS.96).aspx#1

Posted by 비회원

댓글을 달아 주세요

Tech/Silverlight2011. 6. 21. 15:04

Silverlight 5(Beta) 동영상 재생 속도 조절 기능이 추가되었습니다.

MediaElement PlaybackRate 속성을 설정함으로써 쉽게 재생 속도를 조절할 있습니다.


PlaybackRate
의 값은 배속을 나타내며, 값이 2이면 2배속(2x), 0.5면 0.5배속(0.5x)으로 동작합니다.

이를 이용해서 배속 조절이 가능한 간단한 동영상 재생기를 만들어 보겠습니다.
 


위와
같이 동영상을 재생할 MediaElement 하나와 재생 속도를 조절할 Slider 하나를 만들고

MediaElement PlaybackRate 속성에 Slider Value 바인드하고 실행하면,


슬라이더를 이용해 동영상 재생 속도를 조절할 있는 동영상 재생기가 완성됩니다!

Posted by 비회원

댓글을 달아 주세요

  1. 바인딩 하는 건 원래 예상에 없었는데 막 ㅋㅋ 해보라 그래서 당황했을 것 같은데, 잘 해줘서 쌩유~.

    2011.06.21 16:19 신고 [ ADDR : EDIT/ DEL : REPLY ]

Tech/WPF2011. 5. 3. 17:26

WPF에서 GDI를 이용하여 이미지를 생성할 수 있다.
Graphics객체를 통해, 도형이나 선, 텍스트, 이미지 등을 그릴 수 있다.

참고 (http://msdn.microsoft.com/ko-kr/library/system.drawing.graphics.aspx)

아래의 예제는 파일목록들을 얻어와서 1000*1000크기의 Bitmap객체에 이미지들을 추가하여 이미지를 생성하는 코드이다.

 private void Button_Click(object sender, RoutedEventArgs e)
         {
            Bitmap bitmap = new Bitmap(1000, 1000);
             Graphics g = Graphics.FromImage(bitmap);

            float x = 0;
            float y = 0;
            DateTime start = System.DateTime.Now;
            for(int i = 0; i< this.imageList.Count; i++)
             {
                try
                {
                    System.Drawing.Image image = System.Drawing.Image.FromFile(this.imageList[i]);

                    g.DrawImage(image, x, y, 100, 100);
                     x += 20;
                    y += 20;
                    bitmap.Save(System.IO.Path.Combine(this.outputFolderPath, "test" + i.ToString() + ".png"));
                 }
                catch (Exception)
                {
                    //파일 경로중 이미지가 아닌 파일의 경우 Image객체를 생성할 때, 예외가 발생한다.
                     continue;
                }
            }
            
            System.Diagnostics.Debug.WriteLine("elapsed :" + System.DateTime.Now.Subtract(start).TotalSeconds.ToString());
}

 

Posted by 비회원
TAG c#, GDI, Graphic, image, WPF

댓글을 달아 주세요

Tech/Android 개발2011. 4. 15. 12:21

Android 개발환경 설정

 

자 이제 우리도 안드로이드 개발을 해봅시다.

안드로이드 개발에 앞서 필요한 환경은 일단 세가지 입니다.

 

제일 먼저, 안드로이드는 JAVA를 기반으로 구현된 플랫폼 입니다.

그러니 JAVA개발환경부터 세팅을 해야하지요.

자 일단, JDK를 설치해 봅시다.

1. JAVA개발환경 설정

1.1  JAVA SDK설치

JDK에는 세가지 버전이 있는데, 가장 보편적인 SE(Standard Edition)을 사용하도록 합시다.

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u24-oth-JPR@CDS-CDS_Developer

이 링크를 따라가서 자신의 OS환경에 맞춰 다운을 받으시면 됩니다.

대략 80MB정도의 용량입니다.

다운받고 설치를 하시면, 이제 JAVA를 개발할 수 있습니다!

 


1.2
환경변수 설정

하지만, JAVA의 컴파일은 커맨드 기반으로 진행되기 때문에, 편의를 위해서 환경변수 등록을 해줍시다.

왜 환경변수 설정을 하느냐?

일단, JAVA개발에 있어서 가장 자주 사용하는 커맨드는 두개, 컴파일하는 javac, 실행하는 java 입니다.

이것을 환경변수를 설정하지 않고, 사용하려고 하면

 

 

이런 오류가 나옵니다.

커맨드를 사용하려면 실행파일이 있는 폴더까지 가서 실행해야 하는 불편함이 있지요.

현재 위치에 상관없이 어느 위치에서나 커맨드를 사용 가능하도록 하기 위해 환경변수를 설정하는 것입니다.

그럼 어디가서 환경변수를 설정하느냐?


시스템 속성창을 여시면 고급탭 하단에 환경변수 버튼이 보입니다.

버튼을 클릭하게 되면,



이런 창이 뜹니다.

여기서 아래 시스템 변수 영역에서 path변수에 JAVA의 실행파일들이 위치한 폴더를 추가해줍시다.


경로는 JDK가 설치된 폴더 하위의 bin폴더 입니다.

이렇게 환경변수를 설정하고 나서 다시 커맨드를 실행해봅시다.

 

 

아까와는 다르게 실행방법에 대한 설명이 주루루룩 나옵니다.

이제 JAVA개발환경은 준비가 되었습니다.


 

2.     Android SDK설치하기

이제 기반이 되는 JAVA는 설치를 마쳤으니, Android도 설치를 해봅시다.

http://developer.android.com/sdk/index.html

JDK와 마찬가지로 자신의 OS에 맞춰 Android SDK를 다운 받아봅시다.

현재 설치형 버전과 압축형 버전 두가지가 제공되고 있는데, 별 차이는 없습니다.
다만 설치형이 조금더 편하기에 설치형을 사용해 봅시다.

40MB가 조금 못되는 용량입니다. 다운을 받고 설치를 진행하게 되면 다음과 같은 창이 뜹니다.


여기서 Android OS버전별 업데이트를 진행할 수 있습니다.

필수적으로 해야하는 업데이트는 Android SDK Tools, Android SDK Platform-tools 입니다.

업데이트까지 진행하고 나면, Android SDK설치는 완료되었습니다.

 

3. Eclipse 설치하기

3.1 Eclipse
설치


자 그럼 Android개발에 사용할 툴을 설치해봅시다.
Android
가 지원하는 개발툴은 Eclipse입니다.
그럼 이것도 설치를 해봅시다.

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR2/eclipse-jee-helios-SR2-win32.zip

대략 300MB정도 됩니다. 가장 크죠.

 

Eclipse는 설치가 필요없이 다운받아서 압축만 풀어서 사용할 수 있습니다.

다운받은 파일의 압축을 풀어봅시다.

압축을 풀게되면, 다음과 같은 파일들을 보실 수 있습니다.

 


이중에서 딱 봐도 아이콘이 있는 eclipse.exe를 실행해 봅시다.

 


처음 실행하게 되면, 위와 같은 창이 뜹니다. 프로젝트를 저장할 작업 폴더를 설정해줘야 합니다.
사용할 작업 폴더 경로를 입력하고 OK를 클릭합시다.

 


자 그러면 Eclipse는 설치가 완료되었습니다.

 

3.2 Toolkit설치

하지만, Android개발을 위해서는 또, 설정을 해줘야합니다.

뭐가 참 많죠? ㅠㅠ

일단 Android SDK와 연결을 위한 Toolkit을 설치해야 합니다.

 

메뉴의 Help -> Install New Software를 선택합니다.



그리고 화면 상단의 ADD버튼을 클릭하여, Toolkit을 다운 받을 경로를 설정해줍시다.


 

경로를 설정하게 되면, 설치가능한 툴킷목록이 주루룩 나옵니다.

  


일단 네가지 다 설치합니다.

 

다 설치하고 나면, 프로그램을 재시작하라는 다이얼로그가 뜹니다.

재시작!


 

3.3 Android SDK 경로 설정


다시 실행된 Eclipse를 보면 뭔가 Android스러운 아이콘들이 몇 개 보이기 시작합니다.

하지만 아직 끝나지 않았습니다.

이제 마지막 입니다.

Eclipse 2번에서 설치한 Android SDK를 연결하기 위해서 Android SDK가 설치된 폴더경로를 지정해 주어야 합니다.

메뉴의 Window -> preferences 를 클릭해보시면

 


이런 창이 뜹니다.

목록중에 Android가 보이시죠?

저기에서 설정하면 됩니다.

 


이렇게 SDK가 설치된 폴더경로를 설정해주고, Apply를 클릭하면 설치된 Android버전들이 주루룩 나타납니다.
OK
를 누르시면 종료!

자 이제 Android개발을 위한 환경 설정을 마쳤습니다.

 

4. Hello! World!

4.1 프로젝트 생성하기

자 그럼 다 설치했으니, 설레는 마음으로 Hello! World!를 해봅시다.

먼저 프로젝트를 생성합니다.


좌측의 Package Explorer에서 우클릭을 통해 메뉴를 열거나 상단 메뉴의 File -> New 에 보시면 Android Project가 보입니다! (보이지 않는 경우에는 맨 아래의 Other를 클릭하시면 Android -> Android Project를 찾으실 수 있습니다) 꾹 눌러주시죠.

나타나는 창에서 어플리케이션에 대한 대략적인 설정을 해줘야 합니다.
OS
버젼, 어플리케이션 이름, 패키지 명, Activity(Main 역할을 합니다.)등을 작성하고 Finish를 클릭합니다.

프로젝트를 생성하면 기본적으로 Hello World가 템플릿 형식으로 구현되어 있습니다.
그래서 바로 실행을 해보도록 합시다.

Package Explorer영역의 프로젝트에서 우클릭후 Run As-> Android Application을 클릭합니다.

 


4.2 Virtual Device
생성하기

 

 


실행하려고 하면 위와 같이 다이얼로그가 뜹니다.
아직 만들어진 에뮬레이터가 없어서 만들라는 얘기지요. Yes를 클릭해서 한번 만들어봅시다.

  


우측 상단의 New를 클릭합니다.

에뮬레이터의 이름과 대상OS버젼, SD카드 사이즈를 설정하고 Create AVD를 클릭합시다.


이제 에뮬레이터가 만들어졌습니다.

 


4.3 Hello! World!


자 이제 준비는 끝났습니다. 좀 전과 같이 프로젝트를 실행하면


짜잔 에뮬레이터가 실행됩니다. (대략 시간이 좀 걸립니다 -_-)

 


Hello World!!
이렇게 대략적으로 Android 개발 준비를 마쳤습니다!!

이제 다함께 삽질의 세계로~


Posted by 비회원

댓글을 달아 주세요

Tech/iOS 개발2011. 3. 12. 09:38
EXC_BAD_ACCESS 오류가 나면서 프로그램이 종료되는 현상은 이미 소멸된 개체의 포인터에 메시지를 보낸 것이 원인입니다.

문제는 이렇게 종료되었을 때 코드의 어느 부분에서 그러한 메시지 전달이 시도되었는지 알려주지 않아서 디버깅이 정말 힘들다는거죠.

이럴 때 NSZombie를 사용해야 합니다.

XCode 왼편 목록에서 Executables 중 디버깅하려는 항목의 Get Info로 들어갑니다. 거기서 Arguments에 NSZombieEnabled 를 YES로 성장하는 항목을 추가해줍니다. 그리고 디버깅을 하면 됩니다.

이렇게 설정하면 개체가 소멸된 그자리에 좀비가 남아서 잘못된 메시지 전달 시도라는 것을 알려줍니다.

문제에 대한 디버깅을 마치면 위에서 추가한 NSZombieEnabled Argument를 지우거나 체크 해제해줍니다.

iPhone 에서 작성된 글입니다.
Posted by wafe

댓글을 달아 주세요

Tech/Objective-C 언어2011. 1. 20. 23:22

Objective-C 에서 여러 개의 인자를 받는 메소드는 다음과 같은 모양으로 선언됩니다.

- (void)setWidth:(float)width height:(float)height;

파라미터마다 반드시 하나씩 이름이 붙는 것처럼 보이기는 하지만, 이것은 Python이나 C# 에서 제공되는 Named Parameter 와는 달리 순서를 바꿔 쓸 수 없습니다. 아래와 같이 세 개의 인자를 받는 인스턴스 메소드가 있을 때,

- (void)setCoordinatesX:(float)x y:(float)y z:(float)z; 

다음과 같은 메시지 표현식은 위에 있는 메소드와 대응되지 않습니다. (y: 와 z: 의 순서가 바뀌었지요)

[myCoordinates setCoordinatesX:1.0 z:2.0 y:3.0]

즉,    (void)setCoordinatesX:(float)x y:(float)y z:(float)z  라는 메서드와 (void)setCoordinatesX:(float)x z:(float)z y:(float)y  라는 메서드는 서로 다른 메서드이며, 한 클래스 안에 같이 정의될 수 있습니다.


여러 개의 인자를 받는 메소드에서 재미있는 부분이 또 하나 있는데, 동일한 파라미터 이름을 반복해서 쓸 수도 있습니다. 아래와 같은 메서드 선언이 가능한 것이지요.

- (void)setValue:(int)v1 val:(int)v2 val:(int)v3; 

어차피 Objective-C 에서는 메소드의 파라미터 순서를 바꿔서 호출하거나, C++ 에서처럼 선언시에 파라미터 기본값을 설정해서 호출시에는 생략할 수 있는 기능이 제공되지 않기 때문에 위에서와 같은 메소드를 정의해도 별 문제가 없겠지요. 


'Tech > Objective-C 언어' 카테고리의 다른 글

여러 개의 인자를 받는 메소드  (0) 2011.01.20
메시지, 메소드, 셀렉터에 대해서  (0) 2011.01.17
Posted by wafe

댓글을 달아 주세요