0

ユーザーの入力に基づいて Web サイトからデータを収集する必要があります。

searchString は、「この文字列を検索」などのユーザー入力値です。

NSString *withoutSpaces = [searchString stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

ここでは、スペースを %20 に置き換える必要があります

次に、スペースを含まない新しい文字列 (%20 で置換) を別の文字列に入れる必要があります。

NSString *unescapedSearchString = [NSString stringWithFormat:
                                @"website.com/query?=%22%@%22", withoutSpaces];

必要なサイトは実際には「website.com」ではありませんが、これは単なる例です。また、最初と最後に %22 を残す必要があります。

ご覧のとおり、新しい withoutSpaces ユーザー入力を Web サイト URL にフォーマットするには、%@ が必要です。

検索を行って例を見つけましたが、%@ を使用した私の場合のように書式設定されたものは見つかりませんでした。

文字を「エスケープ」し、フォーマットされた文字列を保持する最良の方法は何ですか? 現在、Web サイトからデータにアクセスしようとすると、null として返されます。ただし、%@ 形式と実際の値なしで文字列を試すと、Web サイトからデータを正常に取得できます。

どんな助けでも大歓迎です。

4

1 に答える 1

-1

このようにする必要があります:

NSString *searchString = ... // the raw search string with spaces and all
NSString *quoted = [NSString stringWithFormat:@"\"%@\"", searchString];
NSString *escaped = [quoted stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *urlString = [NSString stringWithFormat:@"website.com?query=%@&value=all", escaped];

ところで - URL は少しずれているようです。=の前後に変数名が必要?です。

于 2013-04-12T21:53:25.707 に答える