ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Objective-C 기본 문법 정리하기
    기타 2022. 12. 9. 23:43
    • 객체 지향 언어 (Object-oriented)
    • 확장자는 .h와 .m (interface와 implementation)
    • #import로 라이브러리를 가져올 수 있다. 
    • NSLog로 출력할 수 있다.
    • 문자열 앞에는 @를 붙인다.
    • 문자열 타입은 NSString을 사용한다.
    • BOOL값은 YES 또는 NO이다. (true, false가 아니다)
    • XCode를 통해서 코드를 빌드, 실행할 수 있다.
    #import <Foundation/Foundation.h>
    
    
    
    int main(int argc, const char * argv[]) {
    
        @autoreleasepool {
    
            NSString *str = @"Test print";
    
            NSLog(@"%@", str);
    
            NSLog(@"%d", 1000);
    
        }
    
        return 0;
    
    }
    • @interface와 @implementation
    • interface로 선언하고 실제 구현은 implementation에서 이루어진다.
    #import <Foundation/Foundation.h>
    
    @interface Tire : NSObject
    @end
    
    @implementation Tire
    - (NSString *) description {
        return (@"Car Tire !!!");
    }
    @end
    
    @interface Engine : NSObject
    @end
    
    @implementation Engine
    - (NSString *) description {
        return (@"Car Engine");
    }
    @end
    
    @interface Car : NSObject {
        Engine *engine;
        Tire *tires[4];
    }
    - (void) print;
    - (NSString *) getTireByIndex: (int) index;
    @end
    
    @implementation Car
    - (id) init {
        if(self = [super init]) {
            engine = [Engine new];
            tires[0] = [Tire new];
            tires[1] = [Tire new];
            tires[2] = [Tire new];
            tires[3] = [Tire new];
        }
        return self;
    }
    - (void) print {
        NSLog(@"%@ 1", engine);
        NSLog(@"%@ 2", tires[0]);
        NSLog(@"%@ 3", tires[1]);
        NSLog(@"%@ 4", tires[2]);
        NSLog(@"%@ 5", tires[3]);
    }
    
    - (Tire *) getTireByIndex:(int)index {
        return tires[index];
    }
    @end
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            NSString *str = @"Test print";
            NSLog(@"%@", str);
            NSLog(@"%d", 1000);
            Car *car = [Car new];
            [car print];
            NSString *tire = [car getTireByIndex: 1];
            NSLog(@"tire index 1 : %@", tire);
            return (0);
        }
        return 0;
    }
    • 콜렉션 클래스의 종류로 NSArray, NSDictionary, NSSet 등이 있다.
    NSArray *arr = @[@"apple", @"banana", @"cocoa"];
    
    // Enumeration
    for(id str in arr) {
    	NSLog(@"log %@", str);
    }
    
    // 변수 사용
    for(int i = 0; i < [arr count]; i++) {
    	NSString *str = [arr objectAtIndex:i];
        NSLog(@"element: %@", str);
    }

    NSDictionary는 key-value형태로 값을 저장한다.

    NSDictionary *person = @{@"name": @"gildong", @"age": 35, @"familyName": @"Hong"};
    
    id name = person[@"name"];
    
    [person setObject:@"Park" forKey:@"familyName"];
    id Fname = person[@"familyName"]; // Park
    
    [person removeObjectForKey:@"age"]; // age 키, 값 삭제
    
    (NSArray *) keys = [person allKeys];
    (NSArray *) values = [person allValues];

     

Designed by Tistory.