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];