Как получить значения из NSString
У меня есть NSString
, Это URL, который я получаю при использовании Universal Links. Я хочу получить значение id из него. Есть ли какие-либо прямые методы в SDK или нам нужно использовать componententsSeparated
Строковые значения?
Ниже приведен NSString / URL:
Я хочу получить две вещи: "test" из test.html и значение "id".
3 ответа
Использование NSURLComponents
создан из NSURL
или же NSString
вашего URL.
Оттуда вы можете использовать path
чтобы получить /cc/test.html
часть. Тогда используйте lastPathComponent
получить test.html
и, наконец, использовать stringByDeletingPathExtension
получить test
,
Чтобы получить значение "id", начните с queryItems
значение. Итерируйте этот массив, находя NSURLQueryItem
с именем "id", а затем получить его значение.
Мы можем сделать расширение
extension URL {
func getParamValue(paramaterName: String) -> String? {
guard let url = URLComponents(string:self.absoluteString ) else { return nil }
return url.queryItems?.first(where: { $0.name == paramaterName})?.value
}
}
Теперь вы можете позвонить, как показано ниже
let someURL = URL(string: "https://some.com/cc/test.html?id=3039&value=test")!
someURL.getParamValue("id") // 3039
someURL.getParamValue("value") // test
Вы могли бы создать NSURLComponents
из строки URL получить параметры, вызвав queryItems
метод. Вернет массив NSURLQueryItem
NSURLComponents *components = [NSURLComponents componentsWithString:@"https://some.com/cc/test.html?id=3039&value=test"];
NSArray *array = [components queryItems];
for(NSURLQueryItem *item in array){
NSLog(@"Name: %@, Value: %@", item.name, item.value);
}
NSLog(@"Items: %@", array);