繁体   English   中英

如何从NSString获取值

[英]How to get Values from a NSString

我有一个NSString 这是使用通用链接时获得的URL。 我想从中获取ID值。 SDK中是否有任何直接方法,还是我们需要使用componententsSeparated String值?

以下是NSString / URL:

https://some.com/cc/test.html?id=3039#value=test

我想得到两件事:来自test.html的“测试”和“ id”值。

使用从您的URL的NSURLNSString创建的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM