Parsing parameters from URL scheme in iOS

// ie: http://todolist?tk=tokenString&did=123-321-111-222-333&account=0DD3223&id=3547
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  if ([[url scheme] isEqualToString:@"todolist"]) {
    NSString *query = [url query];
    if (query.length > 0) {
      NSArray *components = [query componentsSeparatedByString:@"&"];
      NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
      for (NSString *component in components) {
        NSArray *subcomponents = [component componentsSeparatedByString:@"="];
        [parameters setObject:[[subcomponents objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
                       forKey:[[subcomponents objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
      }
      return YES;
    }
  }
  return NO;
}

Reference