상세 컨텐츠

본문 제목

[Objective-C] 메소드의 사용

헉!!/Objective C

by 권태성 2012. 1. 11. 23:46

본문

메소드의 사용
───────────
다음은 NSDate 클래스를 사용해 현재의 날짜와 시각을 표시하는 프로그램입니다.

#import <Foundation/Foundation.h>


int main (int argc, const char * argv[]) {

NSDate *now; // 1

NSString *nowStr; // 2

now = [[NSDate alloc]init]; // 3

nowStr = [now description]; // 4

NSLog(@"%@", nowStr); // 5

    

return 0;

}

 
위 소스를 설명 드리자면 1에서는 NSDate 클래스의 인스턴스용 변수 now를 2에서는 NSString 클래스의 변수 nowStr을 선언하고 있습니다. 
모두 객체형이므로 변수 앞에 '*'가 필요한 점에 주의해야합니다. 3에서는 alloc + init 메소드로 현재 시각을 나타내는 NSDate의 인스턴스를 생성하고 변수 now에 저장하고 있습니다. 4에서는 NSDate 클래스의 description 메소드를 호출하고 있습니다. 이것은 다음과 같이 정의되어 있습니다.

ㅇ 메소드 : description
ㅇ 형 식 :  - (NSString *) description
ㅇ 설 명 : NSDate 객체의 날짜와 시각을 문자열로 돌려준다.

반환값의 형식이 (NSString *)으로 되어 있는데, 인수의 경우와 마찬가지로 반환값이 객체인 경우에도 클래스 이름 다음에 '*'를 기술합니다. 이 description 메소드가 실행되면 내부에서 날짜와 시각을 나타내는 NSString 클래스의 인스턴스가 생성되어 반환됩니다. 따라서 반환값을 NSString 클래스의 변수 nowStr에 저장할 수 있습니다.

5에서는 NSLog 함수를 사용해 nowStr의 값을 표시하고 있습니다.

실행결과는 아래와 같습니다.


 

이어서 description 메소드와 포맷 지정자 '%@' 그리고 날짜와 시각을 한국어로 표시하기가 이어집니다. 

관련글 더보기