11

これまでのところ、送信ボタン用に次のコードを取得しました。

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

ただし、「Expected ':'」というエラーが表示されます

4

5 に答える 5

19

2 つの文字列構築呼び出しを分離する必要があります

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding];
NSURL *add = [NSURL URLWithString:urlString];
于 2012-10-22T15:15:34.630 に答える
7

適切な方法は、URL 全体をエスケープしないことです。個々のパラメーター値のみをエスケープする必要があります。

NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", [messageBox.text stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding]];

さらに良いことに、読みやすく、デバッグを容易にするために、次のようにします。

NSString *escapedText = [messageBox.text stringByAddingPercentEscapesUsingEncoding:NSUFT8StringEncoding];
NSString* urlString = [NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", escapedText];
于 2012-10-22T15:42:31.063 に答える
1

試す:

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding];
于 2012-10-22T15:15:44.757 に答える
0

NSString メソッドを分離して、明確に表示します。

NSString* urlString = [[NSString stringWithFormat:@"http://server.com/ios/add.php?user=iPhone+App&message=%@", messageBox.text] stringByAddingPercentEscapesUsingEncoding : NSUFT8StringEncoding];
于 2012-10-22T15:18:58.627 に答える
-1

NSURL urlWithString を呼び出すと、NSURL は文字列を自動的に URL エンコードします。このコードは必要ありません。

于 2012-10-22T17:19:32.713 に答える