StringByAddingPercentEscapesUsingEncoding устарел в 9.0. Как это сделать?
Я младший разработчик, и у меня есть код для этого:
(NSString *)encodedStringFromObject:(id)object {
return [[object description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
Но в 9.0 нужно использовать stringByAddingPercentEncodingWithAllowedCharacters
.
Как я могу передать этот код?
Мне нужна помощь, спасибо!
Ответы
Ответ 1
Если вы хотите, чтобы просто быстрый пример посмотрел на этот код:
NSString * encodedString = [@"string to encode" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
Также проверьте Список предопределенных наборов символов
Если вы хотите, чтобы объяснение читало документы или, по крайней мере, эту тему: Как закодировать URL-адрес в Swift
Ответ 2
URL = [[NSString stringWithFormat:@"%@XYZ",API_PATH]stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
Ответ 3
Вы прочитали бы спецификацию для обеих функций. Затем вы узнаете, с какой целью символы заменяются escape-последовательностями. Оттуда вы узнаете множество допустимых символов, которые должны быть где-то задокументированы.
Это неотъемлемая часть перехода от младшего к нормальному старшему разработчику. Узнайте, что именно должен делать ваш код, который должен быть определен где-то, а затем заставить его делать то, что он должен делать.
stringByAddingPercentEscapesUsingEncoding, вероятно, устарел, потому что он не знает, какие символы разрешены и иногда дает неправильные результаты.
Ответ 4
Вот решение, чтобы сделать в Swift
var encodedString = "Hello, playground".addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)
Ответ 5
Вы можете использовать stringByRemovingPercentEncoding вместо stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding
[@"string" stringByRemovingPercentEncoding];