【问题标题】:How to parse an asset URL in Objective-c?如何在 Objective-c 中解析资产 URL?
【发布时间】:2011-09-29 07:05:36
【问题描述】:

iPhone UIImagePickerControllerReferenceURL 返回一个 URL 为:

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

从上述 URL 示例中检索 1000000001PNGNSStrings 的最佳(最好是简单)方法是什么?

【问题讨论】:

标签: iphone objective-c parsing


【解决方案1】:

好吧,您可以使用+[NSURL URLWithString:] 轻松将其转换为NSURL。从那里您可以获取-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);

警告,在浏览器中输入,所以我的一些拼写可能是错误的。

【讨论】:

  • stringByReplacingPercentEscapesUsingEncoding
  • @ohho 从 iOS 9 开始,这已被弃用。请改用[myString stringByRemovingPercentEncoding];
【解决方案2】:

对于 IOS >= 4.0,您可以将本机正则表达式与 NSRegularExpression 类一起使用。示例您可以找到here

【讨论】:

    猜你喜欢
    • 2011-10-12
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    相关资源
    最近更新 更多