๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŽ iOS/Objective-C

[iOS, Objective-C] prefixheader.pch ์ถ”๊ฐ€ํ•˜๊ธฐ

728x90
.pch ํŒŒ์ผ์ด๋ž€?

 

Precompile Prefix Header๋กœ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ ๋œ ํ—ค๋”๋กœ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋“ค์€ ๋ชจ๋“  ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

 

 

*ObjectiveC ํ”„๋กœ์ ํŠธ์—๋งŒ ์กด์žฌ, Swift์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.  ์ด์œ ๋Š” ์•„๋ž˜ ๋งํฌ๋กœ~

 

Why .pch file not available in swift?

In swift, Prefix.pch file is not provided. In my project, I want to declare some macros globally and use through out application. Can anyone give me suggestion how to do it, Where to declare? Is ...

stackoverflow.com

 


prefixheader.pch ์ถ”๊ฐ€ํ•˜๊ธฐ

 

1.  pch ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ

New File -> PCH File ์ถ”๊ฐ€.

ํ†ต์ƒ์ ์ธ ํŒŒ์ผ๋ช…์€ ProjectName-PrefixHeader.pch๋กœ ์ •ํ•จ. ์ €๋Š” ๊ทธ๋ƒฅ PrefixHeader.pch๋กœ....

 

 

2. Project - Build Settings (๊ฒ€์ƒ‰: prefix header) ์ˆ˜์ •

Apple Clang - Language ํ•ญ๋ชฉ์—์„œ Prefix Header ์„ค์ •์„ ํ•ด์ค๋‹ˆ๋‹ค.

Precompile Prefix Header --> (Yes๋กœ ๋ณ€๊ฒฝ)

Prefix Header์— .pch ํŒŒ์ผ ๊ฒฝ๋กœ ์ถ”๊ฐ€ --> (your-project-name/ConstantsTest-PrefixHeader.pch)


[์‚ฌ์šฉ ์˜ˆ์ œ]

โœ”๏ธ PrefixHeader.pch ํŒŒ์ผ ์•ˆ์— ํ”„๋กœ์ ํŠธ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ๊ฐ’ ๋˜๋Š” ์„ค์ • ๋“ฑ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

import, define ๋“ฑ ์ž‘์„ฑ,,,

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

#import <UIKit/UIKit.h>

//ERROR code
#define E10001 @"๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜"

//Manager
#import "DBManager.h"

#endif /* PrefixHeader_pch */

 

โœ”๏ธ ํ˜ธ์ถœ

#import "DBManager.h" ์ถ”๊ฐ€ํ•˜๋ฉด, ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ์ž„ํฌํŠธ ํ•˜์ง€ ์•Š์•„๋„ ์–ด๋””์— ๊ฐ€์„œ๋“  DBManagerํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ํ”„๋กœ์ ํŠธ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ๊ฐ’๋“ค์„ #define๋ฌธ์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController{
	//import ํ•˜์ง€์•Š์•„๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ
	UserModel *loginDt;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"%@", E10001);  // ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜
}

@end

 

๋ฐ˜์‘ํ˜•