하루를 꼬박 헤딩을 해 가면서 결국 해결한 문제네요.
일단 기본적인 문법을 잘 이해를 못해서 생기는 문제였는데
요약 하면 다음과 같습니다.
플래시 액션스크립트 같은 경우 보통 문자열은 따옴표 안에 들어가게 됩니다.
str1 = "안녕하세요."
str2 = "좋은 아침입니다."
str3 = str1 + str2
그리고 문자열을 합치기 위해서 단순 연산자를 사용 합니다.
str3 의 값은 "안녕하세요. 좋은 아침입니다." 라는 결과를 가지게 되죠.
그런데 Objective-C 는 좀 복잡한 절차를 밟아야 합니다.
1. 타입 선언 (NSString)
2. 포인트 지정 (*변수명)
3. 문자열 선언 (@"문자열")
4. 문자열 합치기 명령어 (stringWithFormat)
코드로 보자면 다음과 같습니다.
NSString *str1 = @"안녕하세요.";
NSString *str2 = @"좋은 아침입니다.";
NSString *str3 = [NSString stringWithFormat:@"%@%@",str1,str2];
라고 해야지 str3 변수에 문자열 "안녕하세요.좋은 아침입니다." 가 들어가게 됩니다.
이렇게 변수 하나만 쓸 때는 별로 큰 문제가 없지만
변수끼리 합쳐서 사용을 해야 하는 경우에는
예를 들어
"http://www.naver.com/login.php?id=dark&pw=1234"
이렇게 아이디 패스워드를 텍스트 필드에서 받아서 처리를 해야 하는 경우에는
"http://www.naver.com/login.php?id="
문자 처리하고
아이디 입력 받고 패스워드 입력 받아서
총 3 개의 문자열을 합쳐야 하는 경우가 발생을 하는 것입니다.
idTF, pwTF 라는 텍스트필드가 있을 경우
플래시 액션스크립트 같은 경우는
url
= "http://www.naver.com/login.php?id="+idTF.text+"&pw="+pwTF.text
이렇게 하면 url 변수에 텍스트 필드에서 아이디 패스워드 값을 받아서 문자열을 만들 수 있습니다.
상당히 직관적이라 이해하기 쉬운데 Objective-C 같은 경우는 문법이 다릅니다.
NSString *url = [NSString stringWithFormat:@"http://www.naver.com/login.php?id=%@&pw=%@",idTF.text,pwTF.text];
이렇게 해야지 url 변수에 지정된 url 에 텍스트 필드에서
아이디 패스워드 값을 받아서 문자열 처리를 할 수 있게 됩니다.
대충 설명을 드리자면 stringWithFormat 명령은 문자열을 합친다는 것이고
따옴표 앞에 @ 는 유니코드를 지정하는 뜻으로
일반적인 문자열에는 그냥 쓴다고 이해하시면 됩니다.
그리고 중간에 보면 %@ 표시가 있는데 그게 특정 값을 문자열에 넣는 다는 것으로
id=%@ 되어 있으면 id= 에 어떠한 값을 붙인 다는 것입니다.
예제 코드는 idTF.text 값을 넣은 것입니다.
그리고 뒤에 pw=%@ 해 놓은 것은 pwTF.text 값을 넣은 것이고요.
즉, %@ 갯수 만큼 뒤에서 다른 값을 순서대로 넣게 된 것입니다.
프로그램 코딩에 상당히 많이 쓰이면서도
문법의 차이로 인해 별것도 아닌 것에 많은 시간을 투자하게 되는데
저처럼 몰라서 고생하셨던 분들 많은 도움이 되셨으면 좋겠습니다.
'개발도구 > iOS - 아이폰 개발' 카테고리의 다른 글
[아이폰] add version 아이폰 어플 버전업때 배포과정 (0) | 2011.08.23 |
---|---|
[아이폰] tableview row 파란색 없애기 (0) | 2011.08.22 |
[아이폰] webview 와 youtube 유투브 자동 실행 (0) | 2011.08.08 |
[아이폰] embed을 이용한 webview-youtube 바로 연동하기 (0) | 2011.08.05 |
[아이폰] 개발자 샘플 코드 (0) | 2011.08.05 |