NSTaggedPointerString为无符号整数

时间:2017-03-31 01:29:01

标签: ios objective-c casting unsigned-integer openurl

我正在尝试将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;像这样 register URL ios

我的测试网址为test://selectedSection=0

如果需要,我可以上传示例项目,但上述两个步骤都是重现所需的步骤。我没有正确地将NSString转换为无符号整数吗?

0 个答案:

没有答案