如何在Objective-c中解析资产URL?

时间:2011-07-06 03:34:36

标签: iphone objective-c parsing

iPhone UIImagePickerControllerReferenceURL返回的网址为:

assets-library://asset/asset.PNG?id=1000000001&ext=PNG

从上面的网址示例中,将1000000001PNG作为NSString重审的最佳(最简单)方法是什么?

2 个答案:

答案 0 :(得分:4)

好吧,您可以使用NSURL轻松将其转换为+[NSURL URLWithString:]。从那里你可以抓住-query字符串并解析它,如下所示:

NSString *query = ...;
NSArray *queryPairs = [query componentsSeparatedByString:@"&"];
NSMutableDictionary *pairs = [NSMutableDictionary dictionary];
for (NSString *queryPair in queryPairs) {
  NSArray *bits = [queryPair componentsSeparatedByString:@"="];
  if ([bits count] != 2) { continue; }

  NSString *key = [[bits objectAtIndex:0] stringByRemovingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  NSString *value = [[bits objectAtIndex:1] stringByRemovingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

  [pairs setObject:value forKey:key];
}

NSLog(@"%@", pairs);

警告,在浏览器中键入,因此我的一些拼写可能是错误的。

答案 1 :(得分:0)

对于IOS> = 4.0,您可以使用带有NSRegularExpression类的本机正则表达式。您可以找到here

的示例