Notice
Recent Posts
Recent Comments
Link
투케이2K
24. (Objective-C/objc) init 클래스 생성자 초기화 실시 및 리턴 포맷 데이터 확인 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : OBJECTIVE-C
[ViewController.m : 클래스 생성자 호출]
// MARK: - [뷰 로드 실시]
- (void)viewDidLoad {
[super viewDidLoad];
printf("\n");
printf("=============================== \n");
printf("[ViewController >> viewDidLoad() :: 뷰 로드 실시] \n");
printf("=============================== \n");
printf("\n");
// MARK: [클래스 생성자 초기화 및 메소드 호출 실시]
// MARK: [사전 헤더 파일 import 필요 : #import "TestClass.h"]
// [일반 init 클래스 생성자 초기화 실시]
TestClass *ts_1 = [[TestClass alloc] init];
NSString *result_1 = ts_1.formatInfo; // [메소드 호출]
printf("\n");
printf("=============================== \n");
printf("[일반 클래스 생성자 초기화 :: %s] \n", result_1.description.UTF8String);
printf("=============================== \n");
printf("\n");
// [데이터 삽입 클래스 생성자 초기화 실시]
TestClass *ts_2 = [[TestClass alloc] initName:@"투케이2K" initAge:29];
NSString *result_2 = ts_2.formatInfo; // [메소드 호출]
printf("\n");
printf("=============================== \n");
printf("[데이터 삽입 클래스 생성자 초기화 :: %s] \n", result_2.description.UTF8String);
printf("=============================== \n");
printf("\n");
}
[TestClass.h : 헤더 정의]
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. TestClass (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 등 선언
// -----------------------------------------
*/
// -----------------------------------------
/*
MARK: [요약 설명]
1. objc 에서는 객체 인스턴스를 생성하기 위해서 우선, 메모리 할당 >> 다음, 초기화를 진행합니다
2. 클래스 생성자 초기화는 헤더 h 파일에 선언된 @interface 내부에 선언합니다
*/
// -----------------------------------------
// -----------------------------------------
// [클래스 내부 함수로 구현 실시]
@interface TestClass : NSObject {
// [클래스 생성자 초기화 변수 선언]
NSString *name;
int age;
}
// [일반 클래스 생성자 초기화]
-(id) init;
// [데이터 사용해 클래스 생성자 초기화]
-(id)initName:(NSString *)nameData initAge:(int)ageData;
// [인스턴스 메소드 선언 실시]
-(NSString *) formatInfo;
@end
// -----------------------------------------
[TestClass.m : 몸체 구현]
#import <Foundation/Foundation.h>
// MARK: - [헤더 파일 imort]
// -----------------------------------------
#import "TestClass.h"
// -----------------------------------------
// MARK: - [몸체 [구현부] 정의]
// -----------------------------------------
@implementation TestClass
// -----------------------------------------
// MARK: - [일반 init 클래스 생성자 정의]
- init {
self = [super init];
if (self != nil){
// [변수값 널 데이터 삽입]
name = @"0";
age = 0;
}
return self;
}
// MARK: - [데이터 삽입 init 클래스 생성자 정의]
- (id) initName:(NSString *)nameData initAge:(int)ageData {
self = [super init];
if (self != nil){
name = nameData; // 변수에 인풋으로 들어온 데이터 삽입
age = ageData; // 변수에 인풋으로 들어온 데이터 삽입
}
return self;
}
// MARK: - [변수값 리턴 반환 메소드 구현 실시]
- (NSString *) formatInfo {
// [변수 값을 포맷해서 리턴 NSString 에 담고 반환 실시]
return [NSString stringWithFormat:@"이름 : %@ , 나이 : %d", name, age];
}
// -----------------------------------------
@end
// -----------------------------------------
[결과 출력]
반응형
'Objective-C' 카테고리의 다른 글
26. (Objective-C/objc) instancetype 사용해 클래스 생성자 초기화 실시 (0) | 2022.02.28 |
---|---|
25. (Objective-C/objc) NSDate 사용해 24 시간 형식 현재 날짜 및 시간 출력 실시 (0) | 2022.02.28 |
23. (Objective-C/objc) url 인코딩 (encode) , 디코딩 (decode) 수행 실시 - URLHost (0) | 2022.02.24 |
22. (Objective-C/objc) 프로토콜(Protocol) 사용해 헤더 정의 및 몸체 구현 실시 (0) | 2022.02.24 |
21. (Objective-C/objc) base64 인코딩 (encode) , 디코딩 (decode) 수행 실시 (0) | 2022.02.24 |
Comments