开发获取NSURL字符串的参数

一次意外的发现了 NSURL 可以很简单的获取参数

Imagem de capa

开发获取NSURL字符串的参数

因为今天要获取返回的CallBack返回URL字符串后拼接的字符串 发现NSURL这个类里面没有什么API可以获取。我相信这个经常用到的东西苹果没有提供对应的接口或者方法,让开发者自己解析,这不像苹果的风格。我就顺着NSURL所在的文件向下面找去。

78658C40-E92C-4D03-9426-8717F9B32209

图片的两个参数引起我的注意,我就全局搜索NSURLQueryItem那地方有。

我直接用我的NSURL的变量获取queryItems的发现没有这个属性,仔细一看原来是归属于NSURLComponents这个类。

我们就初始化一个这个类写一下代码看看。

NSURL *url = [NSURL URLWithString:@"http://www.xxxx.com?token=231123&PayerID=321321"];
NSURLComponents *components = [[NSURLComponents alloc] initWithString:url.absoluteString];
[components.queryItems enumerateObjectsUsingBlock:^(NSURLQueryItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    NSLog(@"%@=%@",obj.name,obj.value);
}];

下面是打印的结果

看来我的需求已经达到了

这个方法只能适用于只支持iOS8以上的工程