开发获取`NSURL`字符串的参数

时间:2022-06-09
本文章向大家介绍开发获取`NSURL`字符串的参数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

typora-copy-images-to: ipic

开发获取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以上的工程