본문 바로가기
IOS (Swift, Objective-c)

[IOS] [Objective-C] 함수, function, method

by bryan.oh 2022. 2. 8.
반응형

 

Implementation 의 함수만들기

예) 파라메터와 리턴값이 없는 것

함수타입(리턴타입)함수명
-(void)printInfo

// .h
@interface TestUtil : NSObject
- (void)printInfo;
@end


// .m
@implementation TestUtil

-(void)printInfo{
    NSLog(@"hello-bryan");
}

@end


// 사용
TestUtil *testUtil = [[TestUtil alloc] init];
[testUtil printInfo];
// hello-bryan

 

예) 파라메터와 리턴값이 있는 것

함수타입(리턴타입)함수명:(파라메터1의 타입)파라메터명 두번째파라메터별칭:(두번째파라메터타입)두번째파라메터명
-(NSString*)setInfoWithValue:(NSString *)value1 secondValue:(NSString *)value2

// .h
@interface TestUtil : NSObject
- (NSString*)setInfoWithValue:(NSString*)value1 secondValue:(NSString*)value2;
@end


// .m
@implementation TestUtil
-(NSString*)setInfoWithValue:(NSString *)value1 secondValue:(NSString *)value2
{
    return [NSString stringWithFormat:@"%@ %@", value1, value2];
}
@end


// 사용
TestUtil *testUtil = [[TestUtil alloc] init];
NSString *str = [testUtil setInfoWithValue:@"hello" secondValue:@"bryan"];
NSLog(@"%@", str);
// hello bryan

 

클래스함수 ( static 함수)

+ (int)getYearOfBirth:(int)currentYear age:(int)age;

@interface TestUtil : NSObject
+ (int)getYearOfBirth:(int)currentYear age:(int)age;
@end

@implementation TestUtil
+ (int)getYearOfBirth:(int)currentYear age:(int)age
{
    return currentYear - age + 1;
}
@end

// 사용
int age = [TestUtil getYearOfBirth:2022 age:20];
NSLog(@"%i", age);
// 2003

 

 

함수 만들기

//
//  TestUtils.h
//  RealmTest
//
//  Created by USER on 2022/02/05.
//

#ifndef TestUtils_h
#define TestUtils_h

int addValues2(int value1, int value2);
NSInteger addValues(NSInteger value1, NSInteger value2);
NSString* addStrings(NSString* value1, NSString* value2);

#endif /* TestUtils_h */
//
//  TestUtils.m
//  RealmTest
//
//  Created by USER on 2022/02/05.
//

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

int addValues2(int value1, int value2){
    return value1 + value2;
}
NSInteger addValues(NSInteger value1, NSInteger value2){
    return value1 + value2;
}
NSString* addStrings(NSString* value1, NSString* value2){
    return [NSString stringWithFormat:@"%@ %@", value1, value2];
}

사용

//
//  ViewController.m
//  RealmTest
//
//  Created by USER on 2022/02/05.
//

#import "ViewController.h"
#import "Utils/TestUtils.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    int sum1 = addValues2(1, 2);
    NSLog(@"sum1 = %i", sum1);
    // 3
    
    long sum2 = addValues(2, 3);
    NSLog(@"sum2 = %li", sum2);
    // 5

    NSString *concat = addStrings(@"hello~", @"bryan~");
    NSLog(concat);
    // hello~ bryan~
}
@end
728x90
반응형

댓글