2013-05-31 43 views
1

我發送一個NSMutableString通過電子郵件的正文。 它不會工作,因爲它說senderString不能通過靜態定位。幫幫我?電子郵件NSMutableString在目標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

所以你有一個編譯器錯誤? – 2013-05-31 20:08:27

+0

是的,錯誤是當我在所有電子郵件信息的同一行中使用senderString – rErbaugh

+2

爲什麼不使用'MFMailComposeViewController'來允許用戶從您的應用程序發送電子郵件? – rmaddy

回答

3

的問題是你的上線,宣佈mailURLsenderString包容。我假設你試圖將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百分比,並添加了建議逃脫senderString參數,通過rmaddy的建議。

+0

由於此字符串現在是格式字符串,因此您需要用'%% 20'替換'%20'。要在字符串中放置一個'%'字符,您需要將其轉義爲'%%'。 – rmaddy

+0

而你需要在'senderString'上調用'stringByAddingPercentEscapesUsingEncoding:'。 – rmaddy

+0

@rmaddy關於%轉義的優秀點。我已經更新了答案。至於senderString轉義,我從他的一個評論中得到了印象,那就是已經逃脫了,或者至少不需要轉義。雖然現在想想,但我至少應該在答案中提到這一點。謝謝。 –