투케이2K

4. (Objective-C/objc) property 프로퍼티 사용해 변수 선언 및 get , set 데이터 지정 및 호출 실시 본문

Objective-C

4. (Objective-C/objc) property 프로퍼티 사용해 변수 선언 및 get , set 데이터 지정 및 호출 실시

투케이2K 2022. 2. 18. 12:43
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[testMain 함수]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("=============================== \n");
    printf("\n");
    
    
    // MARK: [요약 설명]
    /*
    // -----------------------------------------
    1. 사전 S_FinalData 클래스 import 필요 : #import "S_FinalData.h"
    2. set 지정 (ex) : S_FinalData.age = 10
    3. get 호출 (ex) : S_FinalData.age
    // -----------------------------------------
    */
    
    
    printf("\n");
    printf("=============================== \n");
    printf("[이름 :: %s] \n", [S_FinalData.name UTF8String]);
    printf("[나이 :: %d] \n", S_FinalData.age);
    printf("[성별 :: %c] \n", S_FinalData.sex);
    printf("[개발자 :: %s] \n", S_FinalData.developer ? "true" : "false");
    printf("[몸무게 :: %f] \n", S_FinalData.weight);
    printf("=============================== \n");
    printf("\n");
}

[S_FinalData.h]

#import <Foundation/Foundation.h>


// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. S_FinalData (선언부)
2. 변수 관리 클래스
// -----------------------------------------
*/



// -----------------------------------------
@interface S_FinalData : NSObject
// -----------------------------------------



// -----------------------------------------
/*
MARK: [요약 설명]
1. property (프로퍼티 정의)
  - 클래스의 속성이나 설정을 지정하는 것입니다
  - 변수 , 메소드 등을 선언해서 사용할 수 있습니다
  - 프로퍼티는 실제 사용할때는 클래스에서 getter , setter 의미로 사용하면 됩니다
 
2. class
  - 사용자 클래스 선언을 위해서 사용합니다
  
3. nonatomic
  - 멀티 스레드 환경에는 작동 안하게 설정
 
4. assign
  - get , set 사용
*/
// -----------------------------------------



// -----------------------------------------
// [프로퍼티 정의]
@property (class, nonatomic, assign) NSString * name;
@property (class, nonatomic, assign) int age;
@property (class, nonatomic, assign) char sex;
@property (class, nonatomic, assign) bool developer;
@property (class, nonatomic, assign) double weight;
// -----------------------------------------



// -----------------------------------------
@end
// -----------------------------------------

[S_FinalData.m]

#import <Foundation/Foundation.h>


// MARK: [헤더 파일 import]
#import "S_FinalData.h"


@implementation S_FinalData


// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. S_FinalData (구현부)
2. 헤더 파일에 정의한 @property getter , setter 구현
// -----------------------------------------
*/



// -----------------------------------------
// MARK: [프로퍼티 초기값 지정 : static 으로 선언해 데이터 보호 및 get , set 으로 변수에 접근]
static NSString * _name = @"투케이";
static int _age = 29;
static char _sex = 'M';
static bool _developer = true;
static double _weight = 62.5;
// -----------------------------------------



// -----------------------------------------
// MARK: [getter 지정]
+ (NSString *) name { return _name; }
+ (int) age { return _age; }
+ (char) sex { return _sex; }
+ (bool) developer { return _developer; }
+ (double) weight { return _weight; }
// -----------------------------------------



// -----------------------------------------
// MARK: [setter 지정]
+ (void)setName:(NSString *) newData { _name = newData; }
+ (void)setAge:(int) newData { _age = newData; }
+ (void)setSex:(char) newData { _sex = newData; }
+ (void)setDeveloper:(bool) newData { _developer = newData; }
+ (void)setWeight:(double) newData { _weight = newData; }
// -----------------------------------------


@end
 

[결과 출력]

 

 

반응형
Comments