[解決済み] ios9のstringByAddingPercentEscapesUsingEncodingの置き換え?
2022-05-15 20:25:57
質問
iOS8以前で使用することはできますか?
NSString *str = ...; // some URL
NSString *result = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
iOS9では
stringByAddingPercentEscapesUsingEncoding
は
stringByAddingPercentEncodingWithAllowedCharacters
:
NSString *str = ...; // some URL
NSCharacterSet *set = ???; // where to find set for NSUTF8StringEncoding?
NSString *result = [str stringByAddingPercentEncodingWithAllowedCharacters:set];
そして私の質問は、どこで必要な
NSCharacterSet
(
NSUTF8StringEncoding
) の適切な置き換えのために
stringByAddingPercentEscapesUsingEncoding
?
どのように解決するのですか?
非推奨のメッセージにはこう書かれています(強調)。
代わりにstringByAddingPercentEncodingWithAllowedCharacters(_:)を使ってください。 これは常に推奨されるUTF-8エンコーディングを使用します。 また、URL コンポーネントやサブコンポーネントごとに有効な文字の規則が異なるため、特定の URL コンポーネントやサブコンポーネントのためにエンコードされます。
そのため、適切な
NSCharacterSet
を引数として与えるだけです。幸いなことに、URL の場合は
URLHostAllowedCharacterSet
という非常に便利なクラスメソッドがあり、これを使えば次のようになります。
let encodedHost = unencodedHost.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
の更新
Swift 3
-- メソッドが静的プロパティになる
urlHostAllowed
:
let encodedHost = unencodedHost.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
注意することですが
このメソッドはURLのコンポーネントやサブコンポーネントの文字列をパーセントエンコードするためのものであり、URLの文字列全体をパーセントエンコードするためのものではありません。
関連
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] URLのPath.Combineは?
-
[解決済み] プロジェクト内の単一ファイルのARCを無効にするにはどうしたらいいですか?
-
[解決済み] Base64エンコーディングは何に使うのですか?
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] iOSとWatchKitで画像のtintColorを変更する方法
-
[解決済み】iOS 7で非推奨のsizeWithFont:の代わりになるものは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?