2012-10-18 61 views
4

在我的代碼我試圖將一些數據發送給我的PHP文件的iOS的Xcode NSURL參數太多

對於添加的東西進入我的SQL我使用GET方法。

到目前爲止,我需要用一個表格在網站上,但我想只有瀏覽到它添加數據,如:這裏

http://server.com/add.php?user=some數據在這裏&消息=最後的數據

我試圖使用至今代碼:

NSURL *add = [NSURL URLWithString:@"http://server.com/ios/add.php?user=iPhone App&message=%@", 
           messageBox.text]; 

[messageView loadRequest:[NSURLRequest requestWithURL:add]]; 

但是Xcode的告訴我:「有太多的參數的方法調用,預計1,有2個」

+1

請記住,您還需要轉義您的字符串以刪除空格,從而使iPhone應用程序中的空間與HTTP請求會搞砸。 – Justin

回答

1

試試這個

NSString *urlString = @"http://server.com/ios/add.php?user=iPhone App&message="; 
NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL *add = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",escapedString, messageBox.text]]; 
[messageView loadRequest:[NSURLRequest requestWithURL:add]]; 

您應該使用NSString +stringWithFormat:

+0

非常感謝!但是,如何讓應用程序刪除空格?當我用空格替換一個+時它工作 –

0

URLWithString接受字符串或字符串文字。 這是你應該怎麼做:

NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone App&message=%@", messageBox.text]; 
NSURL *add = [NSURL URLWithString:urlString]; 
[messageView loadRequest:[NSURLRequest requestWithURL:add]]; 
0
NSURL *add = [NSURL URLWithString:[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone App&message=%@", messageBox.text]]; 

這是因爲URLWithString:預計只有一的NSString *類型的參數。使用NSString的+ stringWithFormat:方法從格式化的字符串和參數中創建一個NSString對象。