Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
iOS Developer/Objective-C

3. Objective-C 자료형

by Toughie 2024. 5. 5.

KAKAO-Choonsik

 

데이터 타입은 데이터가 메모리 공간을 얼마나 차지하는지,

메모리의 비트가 어떻게 해석되는 지에 필요하기에 매우 중요하다. 

(극악무도한 c의 포인터에서 느낄 수 있다.)

 

1. 기본타입(정수형, 실수형)

Integer Types 정수형

정수형의 정확한 사이즈를 알고 싶으면 sizeof를 사용하면 된다. 

sizeof를 통해 해당 타입의 바이트 수를 알 수 있다. 

NSLog(@"int size: %d", sizeof(int));

 

Floating-Point Types(실수형)


2. Void Type 

값이 없음을 나타내는 타입

주로 함수가 값을 반환하지 않거나, 포인터가 어떤 타입의 값을 가리키지 않음을 나타낸다.

(C에서 malloc을 하면 void 포인터를 반환해서, 해당 포인터를 캐스팅 해서 사용해줬던 것을 생각해보자.)

void printMessage(void) {
    NSLog(@"MESAGE");
}

3. Enumerated Type

objective c에서 열거형은 여러 상수를 하나의 그룹으로 묶어 사용하기 위해 사용된다.

각 상수는 고유한 정수 값에 매칭되며, 따로 작성하지 있는 이상 첫번째가 0, 이후 1씩 증가한다.

주로 헤더파일에 작성하고 import해서 사용하는 경우가 많다.

// Direction.h
#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, Direction) {
    Up, //0
    Down, //1
    Right, //2
    Left //3
};

 

switch문과 함께 쓰는 경우가 많다.

#import <Foundation/Foundation.h>
#import "Directions.h"

int main(int argc, const char * argv[]) {
        Direction myDirection = DirectionUp;
        myDirection = DirectionUp;

        switch (myDirection) {
            case DirectionUp:
                NSLog(@"Go Up");
                break;
            case DirectionDown:
                NSLog(@"Go Down");
                break;
            case DirectionLeft:
                NSLog(@"Go Left");
                break;
            case DirectionRight:
                NSLog(@"Go Right");
                break;
            default:
                NSLog(@"Invalid Direction");
                break;
        }
    return 0;
}

3.Derived types

포인터 타입, 배열(Array), 구조체(Structure), 함수(Function)등의 타입들은

이후에 각각 따로 자세히 살펴보도록 하자.