Podpis metody String
o ucieczce-procentowy wynosi:Dlaczego wartość zwracana przez String.addingPercentEncoding() jest opcjonalna?
func addingPercentEncoding(withAllowedCharacters: CharacterSet)
-> String?
(To był stringByAddingPercentEncodingWithAllowedCharacters
w Swift 2.)
Dlaczego ta metoda powrotu opcjonalny?
Dokumentacja mówi, że metoda zwraca nil „jeżeli transformacja nie jest możliwe”, ale nie wiadomo, w jakich okolicznościach transformacja ucieczce może zawodzić:
Postacie są uciekł za pomocą UTF-8, który jest kompletne kodowanie Unicode. Każdy poprawny znak Unicode może być zakodowany przy użyciu UTF-8, a zatem można go uzyskać.
myślałem chyba metoda stosowana pewnego rodzaju kontrola poprawności dla złych interakcji między zestawu dozwolonych znaków i znaków używanych do ucieczki, ale nie jest to przypadek: metoda powiedzie bez względu czy zestaw dozwolonych znaków zawiera "%", a także się powiedzie, jeśli dozwolony zestaw znaków jest pusty.
W tej wersji, nieobowiązkowa wartość zwracana wydaje się wymuszać bezsensowną kontrolę błędu.