我正在尝试将URL查询组件解析为无符号整数。当试图将从URL提取的字符串(NSTaggedPointerString)转换为无符号整数时,程序崩溃
由于未捕获的异常而终止应用 ' NSInvalidArgumentException',原因:' - [NSTaggedPointerString unsignedIntegerValue]:发送到实例XXX的无法识别的选择器
我的应用程序:openURL:options:我的AppDelegate中的方法如下:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
NSMutableDictionary *queryItemDict = [NSMutableDictionary dictionaryWithCapacity:components.queryItems.count];
for (NSURLQueryItem *queryItem in components.queryItems) {
[queryItemDict setObject:queryItem.value forKey:queryItem.name];
}
if ([[queryItemDict allKeys] containsObject:@"selectedSection"]) {
NSUInteger selectedSection = 0;
NSLog(@"%@",[[queryItemDict objectForKey:@"selectedSection"] class]);
selectedSection = [[queryItemDict objectForKey:@"selectedSection"] unsignedIntegerValue];
}
return YES;
}
我在一个空白的iOS Xcode项目中对此进行了测试,并注册了URL方案&#34; test&#34;像这样
我的测试网址为test://selectedSection=0
。
如果需要,我可以上传示例项目,但上述两个步骤都是重现所需的步骤。我没有正确地将NSString转换为无符号整数吗?