[英]How to get Values from a NSString
我有一个NSString
。 这是使用通用链接时获得的URL。 我想从中获取ID值。 SDK中是否有任何直接方法,还是我们需要使用componententsSeparated
String值?
以下是NSString / URL:
我想得到两件事:来自test.html的“测试”和“ id”值。
使用从您的URL的NSURL
或NSString
创建的NSURLComponents
。
从那里可以使用path
获得/cc/test.html
部分。 然后使用lastPathComponent
获取test.html
,最后使用stringByDeletingPathExtension
获取test
。
要获取“ id”值,请从组件的queryItems
值开始。 迭代该数组,找到名称为“ id”的NSURLQueryItem
,然后获取其值。
您可以通过调用queryItems
方法从URL字符串get参数创建NSURLComponents
。 它将返回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: { $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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.