BLOG

Cmd + 0(숫자) : 왼쪽 네비게이션부분 닫기/열기
Cmd + Option + 0(숫자): 오른쪽 속성창부분 닫기/열기

Cmd + Shift + O : 빨리 열기 (단축키 누르고 바로 파일명 치면 원하는 파일을 금방 열 수 있음)

Cmd + E -> Cmd + G : Cmd+E를 누르면 현재 커서 위치의 단어가 찾기 단어가 되고 Cmd+G를 누르면 해당 단어로 다음찾기가 실행

Cmd + Ctrl + Shift + / (Cmd + Ctrl + ?) : 빠른도움말.  현재 커서 위치에 있는 것에 대한 도움말 있는 경우 팝업으로 보여줌

Cmd + Ctrl + J : 현재 커서 위치에 있는 것의 Definition이 있는 파일 염.  (Cmd + Opt + Ctrl + J 로하면 오른쪽 창에 열림)
Cmd + Ctrl + Click 과 동일


저작자 표시
신고
Posted by xiles

Comment

다른 SVN 클라이언트에서는 잘 접속되는데 Xcode 4.2에서는 유독 SVN 연결이 잘 안되는 경우가 있다. SVN 주소가 https로 되어 있는 경우.

이런 경우 시도해볼 수 있는 방법은?

1. 사파리를 띄운다.
2. SVN 주소로 접속한다.
3. 신뢰할 수 없는 Certificate 어쩌구 메시지가 나온다.
4. 요 메시지 창에서 Show Certificate을 누르면  Certificate 정보가 나오고 "항상 신뢰하기"가 있는데 요걸 체크해주고 계속하기를 누른다.
5. 이제 다시 Xcode로 가서 SVN 연결을 해보면 OK! 만약 잘 안되면 Xcode 재실행 후 다시 시도해보면 된다.
 
신고
Posted by xiles

Comment

Xcode 인터페이스 빌더에서 뷰에 UILabel, UIButton 등의 오브젝트를 올려놓고 소스코드와 연결시키려면 IBOutlet과 IBAction을 이용해서 연결해준다. 

Xcode 3.x 버전에서는 인터페이스 빌더(Interface Builder)가 별도의 어플리케이션으로 돌아갔지만, Xcode 4.x 버전에서는 인터페이스 빌더가 통합되었고 그러면서 좀 더 쉽게 작업을 할 수 있게 되었다.

- 오른쪽에 .xib 파일을 띄우고, 왼쪽에 .h 파일을 연다.
- 소스코드에 연결해서 사용할 오브젝트에서 마우스 오른쪽 버튼을 누른채 드래그해서 소스코드 .h 파일 위에서 드롭하면 아래처럼 소스코드에 Outlet을 설정할 수 있는 팝업이 나오고 변수 이름만 입력한 후 Connect를 누르면 바로 소스코드에 필요한 부분들이 추가된다. 


드롭하면 나오는 아래 팝업 Name 부분에 오브젝트와 연결될 변수명을 적어준다.



.h 파일에 자동으로 아래 라인이 추가된다.


.m 파일에도 아래와 같이 기본적으로 필요한 부분들이 자동으로 추가된다.


Outlet 뿐 아니라 Action 또한 쉽게 추가할 수 있다.
Outlet연결할 때와 똑같이 오른쪽 버튼 누른 후 .h로 드래그해서 드롭한다.



드롭하면 나오는 팝업에서 Connection이 기본으로 Outlet으로 되어 있을텐데 그것을 Action으로 변경해 준 후 Name에 연결할 Method 이름을 적어준 후 Connect 버튼을 누른다.



그럼 아래처럼 .h에 아래처럼 필요한 부분이 추가되고,



.m 파일에도 아래처럼 메소드가 추가된다. 

 

 Outlet, Action 한 두개 만드는 경우는 그냥 타이핑하는 것도 괜찮지만, 여러개의 오브젝트들을 IBOutlet과 IBAction을 연결시키는 작업을 하면 은근히 귀찮은데 위처럼 작업하면 매우 편하게 작업 할 수 있다.
 
신고
Posted by xiles

Comment

  1. beyond 2011.09.16 14:49 신고  Comment Address  Edit/Delete  댓글쓰기

    여기에도 올리셨군요 ㅎ 감사합니다.

일반적으로 개발 할 때 SubVersion이나 CVS 등의 버전관리 툴 등을 쓰는 경우가 많다.
물론 위와 같은 전문적인 버전관리툴에는 비할바가 못되겠지만, 잘 활용하면 아주 유용한 기능이 있는데 바로 스냅샷을 만드는 기능이다.

간단히 메뉴 한 번 클릭으로 현재 소스 상태를 그대로 저장해둘 수 있어, 계속되는 소스의 변경에 주요한 부분들에 Snapshot을 만들어두면 쉽게 되돌아갈 수 있고 이전 소스 내용을 찾아보는데도 유용하다.

File 메뉴에 Make Snapshot 을 실행하면 현재 소스의 상태를 Snapshot으로 만들 수 있고 Snapshots에 들어가면 기존에 만든 스냅샷들을 보고 파일들의 변경된 부분들을 확인하거나 이전 스냅샷으로 돌아갈 수 있다.


아래는 소스의 변경된 부분을 보여주는 화면.


신고
Posted by xiles

Comment

일반적으로 개발 할 때 SubVersion이나 CVS 등의 버전관리 툴 등을 쓰는 경우가 많다.
물론 위와 같은 전문적인 버전관리툴에는 비할바가 못되겠지만, 잘 활용하면 아주 유용한 기능이 있는데 바로 스냅샷을 만드는 기능이다.

간단히 메뉴 한 번 클릭으로 현재 소스 상태를 그대로 저장해둘 수 있어, 계속되는 소스의 변경에 주요한 부분들에 Snapshot을 만들어두면 쉽게 되돌아갈 수 있고 이전 소스 내용을 찾아보는데도 유용하다.

File 메뉴에 Make Snapshot 을 실행하면 현재 소스의 상태를 Snapshot으로 만들 수 있고 Snapshots에 들어가면 기존에 만든 스냅샷들을 보고 파일들의 변경된 부분들을 확인하거나 이전 스냅샷으로 돌아갈 수 있다.


아래는 소스의 변경된 부분을 보여주는 화면.


신고
Posted by xiles

Comment

아이폰에서 어플리케이션을 사용하면서 저장해둬야 할 Data들이 있을 것이다.
얘네들은 어디에다가 저장해야 할까?

아이폰에 어플리케이션을 설치하면, Application_Home 디렉토리가 만들어지고 이곳에 어플리케이션이 설치된다.
이 홈디렉토리는 NSHomeDirectory() 함수를 사용하면 얻을 수 있다.

이 Home 디렉토리의 구조는 아래처럼 되어있다.

Application_Home/AppName.app
Application_Home/Documents/
: 어플리케이션에서 무언가 저장해둬야 할 것이 있다면 이곳에 저장해두면 된다.
Application_Home/Library/Preferences/
: 어플리케이션의 설정에 관련된 것들을 저장하는 곳. 
  직접 파일을 쓰거나하지 말고 NSUserDefaults 나 CFPreferences를 이용해야 한다.
Application_Home/Library/Caches/
: 어플리케이션을 종료했다가 다음 실행시에 사용해야할 것들을 저장하는 곳 
  (이전 상태 그대로 실행되도록 하거나 하는 등에 필요한 data)
Application_Home/tmp
: 임시로 필요한 것들을 저장할 수 있는 공간

* /Documents, /Library/Preferences 가 아이폰을 아이튠즈에 연결했을 때 백업되니 반드시 이 곳에 필요한 것들을 저장해야 한다. 어플리케이션을 다시 설치하거나 업데이트하면 이 두 디렉토리의 것들만 그대로 유지된다.

* 만일 큰 파일을 저장하거나 아주 자주 변경되는 파일이 있다면, /Library/Caches 에 저장하는 것을 고려해봐야 한다. 왜냐하면 /Documents에 너무 큰 파일이나 자주 변경되는 것들이 있다면 아이폰을 아이튠즈에 연결할때마다 백업을 하는데 많은 시간이 걸리게 만들 수 있다.

Documents 디렉토리에 data 저장하는 예

- (BOOL)writeApplicationData:(NSData *)data toFile:(NSString *)fileName {


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);


    NSString *documentsDirectory = [paths objectAtIndex:0];


    if (!documentsDirectory) {


        NSLog(@"Documents directory not found!");


        return NO;


    }


    NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName];


    return ([data writeToFile:appFile atomically:YES]);


}


원하는 디렉토리를 얻고자 할 때 아래처럼 바로 지정하지 말고 위의 예처럼 NSSearchPathForDirectoriesInDomains 를 이용하는 것이 좋다.
NSString* docpath = [NSHomeDirectory() stringAppendingPathComponent:@"Documents"];

NSSearchPathForDirectoriesInDomain 의 첫번째 인자로 NSDocumentDirectory, NSCachesDirectory 등을 사용할 수 있다.


좀 더 자세한 부분은 아래 애플 문서에서 확인할 수 있다.


신고
Posted by xiles

Comment

  1. 안녕하세요 2010.06.28 05:17 신고  Comment Address  Edit/Delete  댓글쓰기

    음 요즘 파일 뷰어를 만들고 있는데요 Document폴더에 있는 파일목록을 볼려면 어떻게 해야하나요?

    아무리 찾아도 이것참.....

    • xiles 2010.06.28 10:30 신고  댓글주소  수정/삭제

      NSFileManager 클래스 레퍼런스를 살펴보세요~
      파일/디렉토리 관련된 많은 작업들이 이 클래스를 통해 가능합니다.

      파일목록을 얻으시려면 contentsOfDirectoryAtPath 메소드도 살펴보세요

맥/아이폰 어플리케이션 개발을 하기 위해 필요한 것들과 지난번 아주 간단히 Objective-C에 대해서 살펴봤다.

자, 이제 슬슬 뭔가 실제로 연습을 하기 전에 가장 많이 사용하게 될 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: 스냅샷 만들기
 

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

Comment

  1. ian 2009.08.26 17:55 신고  Comment Address  Edit/Delete  댓글쓰기

    헐 이런 유용한 정보가 :) 감사합니다~

  2. pocplz 2009.10.03 14:09 신고  Comment Address  Edit/Delete  댓글쓰기

    vc쓰다가 xcode 처음 쓰면서 불편했었는데 드디어 편한 정보를 찾았군요. holder기능이 정말 좋습니다. 코딩속도도 빨라졌어요

    그리고 스냅샷 최고네요. 스냅샷 기능 없이 알고리즘 수정하다가 말렸을 때 기분을 더이상 느낄 필요가 없겠군요 ㅎㅎ


    감사합니다.

  3. baek2187 2009.11.09 20:32 신고  Comment Address  Edit/Delete  댓글쓰기

    오! 대단히 유용한 포스팅입니다. 정말 감사합니다. 도움이 많이 될것 같아요.

  4. june 2010.01.08 00:29 신고  Comment Address  Edit/Delete  댓글쓰기

    원하던 정보들이네요
    정말 유용해요~~
    감사합니다

  5. jackNight 2010.11.19 12:57 신고  Comment Address  Edit/Delete  댓글쓰기

    좋은 정보 감사합니다.
    cmd-alt-up (switch to/from .h file)
    ctr-1 (history bar, many misses that this golden bar even exists)
    ctr-2 (function bar)

    이것도 좋군요.

  6. 마카오슈 2014.07.09 22:11  Comment Address  Edit/Delete  댓글쓰기

    관리자의 승인을 기다리고 있는 댓글입니다

This blog is powered by Daum / Skin design by xiles

티스토리 툴바