如何从 NSString 获取值
How to get Values from a NSString
我有一个NSString
。这是我在使用通用链接时得到的 URL。我想从中获取 id 值。 SDK中有直接方法还是需要使用componententsSeparated
字符串值?
下面是NSString/URL:
我想得到两个东西:"test" 来自 test.html 和 "id" 值。
使用从 URL 的 NSURL
或 NSString
创建的 NSURLComponents
。
从那里您可以使用 path
获取 /cc/test.html
部分。然后用lastPathComponent
得到test.html
最后用stringByDeletingPathExtension
得到test
.
要获得 "id" 值,请从组件的 queryItems
值开始。迭代该数组找到名称为 "id" 的 NSURLQueryItem
,然后获取其值。
您可以通过调用 queryItems
方法从 URL 字符串获取参数创建 NSURLComponents
。它将 return 数组 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);
我们可以延期
extension URL {
func getParamValue(paramaterName: String) -> String? {
guard let url = URLComponents(string:self.absoluteString ) else { return nil }
return url.queryItems?.first(where: { [=10=].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
我有一个NSString
。这是我在使用通用链接时得到的 URL。我想从中获取 id 值。 SDK中有直接方法还是需要使用componententsSeparated
字符串值?
下面是NSString/URL:
我想得到两个东西:"test" 来自 test.html 和 "id" 值。
使用从 URL 的 NSURL
或 NSString
创建的 NSURLComponents
。
从那里您可以使用 path
获取 /cc/test.html
部分。然后用lastPathComponent
得到test.html
最后用stringByDeletingPathExtension
得到test
.
要获得 "id" 值,请从组件的 queryItems
值开始。迭代该数组找到名称为 "id" 的 NSURLQueryItem
,然后获取其值。
您可以通过调用 queryItems
方法从 URL 字符串获取参数创建 NSURLComponents
。它将 return 数组 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);
我们可以延期
extension URL {
func getParamValue(paramaterName: String) -> String? {
guard let url = URLComponents(string:self.absoluteString ) else { return nil }
return url.queryItems?.first(where: { [=10=].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