아이폰 어플 개발 , 사용자 홈 디렉토리 찍어보기 (NSString 클래스 이용)

[과제B Section 1] 사용자 홈 디렉토리 찍어보기 (NSString 클래스 이용)

NSString *path = @"~";
를 이용하여

My home folder is at '/Users/pmarcos'
를 출력하라.

또한 경로를 배열로 돌려주는 메소드를 이용하여 아래와 같이 출력하라.

/
Users
pmarcos


Objective-C의 NSString을 이용할땐 항상 @”Hello World” 와 같이 앞에 @를 붙여 주어야 한다.

NSString을 이용하여야 할 곳에 C의 String을 이용해 버리면 프로그램이 제대로 작동하지 않을수 있다.

■ NSString 클래스에 대한 정보는 어디에 있을까?

iPhone Dev Center 에 가면

iPhone Reference Library > Resource Types > Reference 를 열면 기본 클래스에 대한 문서들이 나오며 검색창이 보인다.
"NSString"이라고 치면 NSStringClass Reference 라는 링크를 볼 수 있다.
또한 설치한 Xcode의 Help > Documentation으로 가서 찾아도 된다.
■ 유저 홈 디렉토리란?
Mac OS는 유닉스베이스로 만들어져 있음으로 유저 홈 디렉토리는 "~"(틸드)로 표현이 가능하다.
스트링을 선언해 본다.
NSString *path = @"~";
<원하는 결과>
My home folder is at '/Users/pmarcos'
<시도1>
NSLog(@"My home folder is at %@", path);
* 여기서 %@란 Objective-C의 오브젝트를 의미한다. 자세히는 Format Specifiers 참조.
결과는 My home folder is at ~.
당연하다면 당연하지만, 혹시나 자동으로 바꿔주나 싶었다.
다시 NSString의 API Doc을 참조하여 이번엔 어떤 메소드가 있나 봤다.
틸드가 어쩌고 하는 메소드 발견.
내용은... 패스안에 틸드로 생략된 문자? ... 참 긴 이름이다.
stringByAbbreviatingWithTildeInPath

Returns a new string representing the receiver as a path with a tilde (~) substituted for the full path to the current user’s home directory.

- (NSString *)stringByAbbreviatingWithTildeInPath

Return Value

A new string representing the receiver as a path with a tilde (~) substituted for the full path to the current user’s home directory. Returns a new string matching the receiver if the receiver doesn’t begin with a user’s home directory.

어쨋든 틸드 대신 스트링으로 유저홈을 돌려주나보다.

<시도2>

NSLog(@"My home folder is at %@", [path stringByAbbreviatingWithTildeInPath]);

<결과>
성공!!!
 
■ 경로를 배열로 취득하기
 
NSString 클래스 리퍼런스 문서를 더 찾아보니 pathComponents라는 인스턴스 메소드가 존재한다.
리턴값은 NSArray. 사용해 보았다.
 
NSArray *pathComponents = [path pathComponents];
 
배열로 돌아왔으니 루프를 돌리면서 찍어보자.
아.. 루프 돌리는 법을 모르네... 문법 참조. (The Objective-C Programming Language - Fast Enumeration)
 
for (NSString *element in pathComponents){
    NSLog(element);
}
 
무난히 완성!!!
 


출처 : http://blog.naver.com/PostView.nhn?blogId=katchup00&logNo=10075347794
Posted by 오늘마감

티스토리 툴바