본문 바로가기

개발/App Developer

Xcode, 꼭 알아두면 좋은 것들

아래는 Xcode에 내장된 에디터의 모습이다. 일단 아래 이미지에서는 특이한 것은 없고, 그 아래 Navigation bar를 확대한 이미지를 보자.




아래 이미지는 위 에디터에서 상단에 있는 Navigation bar 이다.

일반적인 코딩 작업을 할 때 Function menu, Bookmarks를 자주 쓰게 될 것이다. 




아래는 위에서 Function menu를 선택하면 나오는 항목들이다. 

함수, 클래스 목록, #define, #pragma 라인들이 기본적으로 나열되고, 중요한 것은 그 다음에 있는 것으로 사용자가 주석으로 달면서 해당하는 문구를 포함시키면 그 라인들도 보여준다. TODO:, FIXME: 같은 것을 잘 활용하면 매우 도움이 될 것이다.

  • Declarations and definitions for classes, functions, and methods

  • Type declarations

  • #define directives

  • #pragma marks

  • Comments containing:

    • MARK:

    • TODO:

    • FIXME:

    • !!!:

    • ???:

이번에는 자동완성에 대해 알아보자.

자동완성을 위한 목록을 보여주는 단축키는 ESC 또는 control + , 를 이용하면된다.

목록을 보지 않고 바로 에디팅하는 상태에서 다음 자동완성 문구를 입력하고 싶으면 control + . 를 이용하면 된다.

이 단축키를 이용하면 목록을 안보고 누를때마다 다음 것, 그 다음 것을 바로 입력해준다.



자동완성 기능을 이용하면, 함수의 인자들 같은 것이 place holder라는 형태로 나오게되는데, 다음 place holder 위치로 커서를 바로 이동시키려면 control + / 를 이용하면 된다. 잘 사용하면 매우 유용할테니 기억해두면 좋은 단축키이다.

shift+control+/ 키를 이용하면 이전 place holder 로 이동한다.


아래는 보통 텍스트 매크로인데 이것도 단축키는 control+, 로 기본 자동완성고 동일하고, place holder가 나오는 것도 위와 동일하다. if 를 에디터에 치고 control+, 를 누르면 If Block  이라고 목록에 뜬 것을 선택하면 바로 입력이 되고 place holder 들이 나온다.

Text macro name

Completion prefix

If Block

if

If / Else Block

ifelse

Else If Block

elseif

For Loop

for

For i Loop

fori

While Loop

while

Do While Loop

do

Switch Block

switch

Case Block

case

Else Block

else

Enum Definition

enum

Struct Definition

struct

Union Definition

union

Type Definition

typedef

Printf() Call

printf

#Pragma Mark

pm

Pragma Mark

pragma

#Import Statement

pim

#Import Statement (System)

pims

#Import Statement (Framework)

pimf

#Include Statement

pin

#Include Statement (System)

pins

#If Block

pif

#Ifdef Block

pifd

#if / Else Block

pife

#Ifdef / Else Block

pifde

#if 0 Block

pifz

Copyright Comment

copyright

Comment Selection

comment

Separator Comment

cseparator


Text macro name

Completion prefix

Try / Catch Block

@try

Catch Block

@catch

Finally Block

@finally

NSLog() Call

log

Alloc / Init Call

a

Array Declaration

aa

Mutable Array Declaration

ma

Array For Loop

fora

Array Foreach Loop

fore

init Definition

init

dealloc Definition

dealloc

observeValueForKeyPath: Definition

observeValueForKeyPath

observeValueForKeyPath: Declaration

observeValueForKeyPath

bind: Definition

bind

bind: Declaration

bind

@interface Definition

@interface

@implementation Definition

@implementation

@protocol Definition

@protocol

NSString

nss

NSMutableString

nsms

NSMutableString

nsa

NSMutableArray

nsma

NSDictionary

nsd

NSMutableDictionary

nsmd



그리고 Xcode에서 매우 유용한 기능이 하나 내장되어 있다. 그 기능은 바로 스냅샷(Snapshot)
File > Make Snapshot 만 실행하면 바로 현재 프로젝트 상태를 저장한다. 스냅샷들을 계속 만들고, 아래 이미지처럼 변경된 파일들을 비교해볼 수 있고, 또 해당 스냅샷으로 복구할 수도 있다.

다른 개발툴들에도 추가 프로그램이나 기타 다른 프로그램들을 이용해서 가능한 것들이지만, Xcode에는 바로 내장이 되어 있고 아주 쉽게 쓸 수 있게되어 있어서 매우 유용하다.



아래는 기타 단축키로 이용하면 유용할 것들 몇 가지를 모아놓은 것이다.

control + , or ESC : 자동완성
control + . : 자동완성 (목록을 보여주지 않는 형태로 다음 자동완성 문구를 입력해준다)
control + / : 자동완성 후 place holder 들 중 다음 place holder로 커서를 이동
shift + control + / : 이전 place holder로 커서 이동

option+command+up arrow: 소스 파일과 헤더 파일을 전환해준다.
command + [ : 선택된 텍스트 왼쪽으로 이동 (윈도우에서 보통 Shift+Tab으로 쓰이는 것)
command + ] : 선택된 텍스트 오른쪽으로 이동 (윈도우에서 보통 Tab으로 쓰이는 것)
command + F : 찾기
command + G : 다음 찾기 (윈도우에서 보통 F3이 많이 사용되는 것)
command + D : 북마크에 추가 
(북마크를 삭제하거나 이름을 바꾸고 싶으면 에디터 왼쪽에 Groups & Files 에 Bookmarks 항목에서 삭제하거나 이름을 바꿀 수 있다.)
shift + command + W: 현재 파일 닫기

command + B : 빌드
command + enter: 빌드 및 실행 (Build and Go)
command + \ : 브레이크포인트 (toggle breakpoint)
shift + command + I : Step Into
shift + command + O: Step Over
shift + command + T: Step Out

control + command + S: 스냅샷 만들기
 

추가적인 기능과 단축키들이 더 많이 있지만, 우선 이정도를 숙지하고 작업에 들어가면 충분할 듯 하다. 특히 자동완성 단축키를 빨리 손에 익히면 좋다.