Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- setting
- UIView
- swift3
- 신도림 테크노마트
- 페이백
- GCD
- 아이폰7
- 공략
- Bitcode
- 샘플
- LG유플러스
- 해몽
- 얻는법
- 신도림
- loop
- UITableView
- simulator
- 포켓몬 GO
- Xcode
- afterdelay
- 포켓볼
- 앱스토어
- IOS
- Check
- 보라카이
- push
- swift
- error
- 스마트폰
- Example
Archives
- Today
- Total
도래울
Objective-C에서 소스 파일의 확장자들 개념 본문
먼저 h파일은 c++과 같게 .h로 동일합니다. 하지만 소스파일이 다른데요, .m(.c에 대응)과 .mm(.cpp에 대응)두가지가 존재합니다. 이렇게 된 이유는 단지 .o와 .c가 C에 의해 이미 사용되고 있었기 때문이라는 군요. 물론 .c, .cpp도 사용가능합니다.
m : Objective-C 구현 파일
mm : Objective-C, C++ 혼용 가능 파일
뭐 이렇다네요. mm으로된 녀석은 Objective-C 문법과 C++문법 둘다 있어도 된다는 거죠. 실제로도 cocos2d-x의 몇몇 mm파일들이 그러합니다.
간단하게 cocos2d-x의 ios helloworld 소스를 살펴보면,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the view controller's view to the window and display.
window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
EAGLView *__glView = [EAGLView viewWithFrame: [window bounds]
pixelFormat: kEAGLColorFormatRGBA8
depthFormat: GL_DEPTH_COMPONENT16
preserveBackbuffer: NO
sharegroup:nil
multiSampling:NO
numberOfSamples:0];
// Use RootViewController manage EAGLView
viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
viewController.wantsFullScreenLayout = YES;
viewController.view = __glView;
// Set RootViewController to window
[window addSubview: viewController.view];
[window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarHidden: YES];
cocos2d::CCApplication::sharedApplication().run();
return YES;
}
AppController.mm 파일 내용중 일부입니다. 다 Objective-C문법을 쓰다가 마지막에 run()부분은 c++이죠. 이렇게 혼용이 가능한게 .mm인거죠. 이러한 일들은 Xcode 내부에서 자동적으로 확장자에 맞는 컴파일러를 선택해 컴파일을 한다고 합니다.
cpp class에 NSString* 변수를 멤버로 가지고 있으면서 사용도 가능하다고 하네요.
'개발 > iOS' 카테고리의 다른 글
| 무료 오픈소스 SQLite 툴, DB Browser for SQLite (0) | 2016.03.11 |
|---|---|
| Mac에서 wireshark를 사용한 iphone 패킷 캡쳐 (0) | 2016.03.03 |
| Swift 훑어보기 (0) | 2016.02.29 |
| Swift 프로젝트에서 Objective-C 코드를 함께 사용하기 (0) | 2016.02.23 |
| 코드를 보기좋게 재정렬 해주는 Xcode 플러그인 - XAlign (2) | 2016.02.17 |
Comments
