2013-05-31 3 views
1

전자 메일 본문을 통해 NSMutableString을 보냅니다. senderString이 정적으로 위치 할 수 없다고 말하기 때문에 작동하지 않습니다. 도움?Email NSMutableString in Objective C

NSMutableString *senderString = [[NSMutableString alloc] init]; 

NSURL *mailURL = [NSURL URLWithString: @"mailto:[email protected][email protected]&subject=My%20Subject%20Line&body=%@"], senderString; 
[[UIApplication sharedApplication] openURL: mailURL]; 
+0

그래서 컴파일러 오류가 발생 했습니까? –

+0

예, 모든 이메일 정보와 동일한 줄에 senderString을 사용할 때 오류가 발생합니다 – rErbaugh

+2

사용자가 앱에서 이메일을 보낼 수 있도록 'MFMailComposeViewController'를 사용하지 않으시겠습니까? – rmaddy

답변

3

문제는 mailURL를 선언 라인의 끝에 senderString 당신의 포함이다. senderString을 이메일 본문으로 설정하려고한다고 가정합니다. 당신을

NSString *urlString = [NSString stringWithFormat: 
    @"mailto:[email protected][email protected]&subject=My%%20Subject%%20Line&body=%@", 
senderString]; 

그리고 그것은 senderString 아직 수행하지 않은 경우 URL에 사용하기 위해 필요에 따라 %가 탈출 언급 할 가치 : 그런 경우

, 당신은 이런 식으로 뭔가를 수행해야합니다 '이 첫 번째처럼 뭔가를해야 할 것이다 (즉, stringWithFormat 호출 전) :

다음
senderString = [senderString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

그냥 구성 할 수있다이 같은 mailURL :

NSURL *mailURL = [NSURL URLWithString:urlString]; 

업데이트 : 내가 %20의 %를 탈출 추가 rmaddy에 의해 제안대로 senderString 매개 변수를 탈출 추천을 추가했습니다.

+0

이 문자열은 이제 형식 문자열이기 때문에'% 20'을'%% 20'으로 바꿔야합니다. 문자열에'%'문자를 넣으려면 이스케이프해야하므로'%% '입니다. – rmaddy

+0

그리고'senderString'에'stringByAddingPercentEscapesUsingEncoding :'을 호출해야합니다. – rmaddy

+0

@rmaddy % 이탈에 대한 뛰어난 점. 답변을 업데이트했습니다. senderString 이스케이프에 관해서는, 나는 이미 이스케이프되었거나 적어도 탈출 할 필요가 없다는 그의 의견 중 하나에 대한 인상을 얻었다. 지금 생각해 보면, 적어도 그 대답은 언급해야합니다. 감사. –